summaryrefslogtreecommitdiff
path: root/cups/thread.c
diff options
context:
space:
mode:
authormsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>2010-11-17 18:58:56 +0000
committermsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>2010-11-17 18:58:56 +0000
commit1106b00e75e37e7f25a28ee95da560de55520018 (patch)
tree3cf4bf7fe0423f2425a401d1c76a5b62ce533f3c /cups/thread.c
parent10d09e334a4892cd5ed4e2a2a0f5bbe3c8c171ed (diff)
downloadcups-1106b00e75e37e7f25a28ee95da560de55520018.tar.gz
Merge changes from CUPS 1.5svn-r9374.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@2859 a1ca3aef-8c08-0410-bb20-df032aa958be
Diffstat (limited to 'cups/thread.c')
-rw-r--r--cups/thread.c173
1 files changed, 173 insertions, 0 deletions
diff --git a/cups/thread.c b/cups/thread.c
index deb3a8ebc..7574298fa 100644
--- a/cups/thread.c
+++ b/cups/thread.c
@@ -13,8 +13,13 @@
*
* Contents:
*
+ * _cupsMutexInit() - Initialize a mutex.
* _cupsMutexLock() - Lock a mutex.
* _cupsMutexUnlock() - Unlock a mutex.
+ * _cupsRWInit() - Initialize a reader/writer lock.
+ * _cupsRWLockRead() - Acquire a reader/writer lock for reading.
+ * _cupsRWLockWrite() - Acquire a reader/writer lock for writing.
+ * _cupsRWUnlock() - Release a reader/writer lock.
* _cupsThreadCreate() - Create a thread.
*/
@@ -28,6 +33,17 @@
#if defined(HAVE_PTHREAD_H)
/*
+ * '_cupsMutexInit()' - Initialize a mutex.
+ */
+
+void
+_cupsMutexInit(_cups_mutex_t *mutex) /* I - Mutex */
+{
+ pthread_mutex_init(mutex, NULL);
+}
+
+
+/*
* '_cupsMutexLock()' - Lock a mutex.
*/
@@ -50,6 +66,50 @@ _cupsMutexUnlock(_cups_mutex_t *mutex) /* I - Mutex */
/*
+ * '_cupsRWInit()' - Initialize a reader/writer lock.
+ */
+
+void
+_cupsRWInit(_cups_rwlock_t *rwlock) /* I - Reader/writer lock */
+{
+ pthread_rwlock_init(rwlock, NULL);
+}
+
+
+/*
+ * '_cupsRWLockRead()' - Acquire a reader/writer lock for reading.
+ */
+
+void
+_cupsRWLockRead(_cups_rwlock_t *rwlock) /* I - Reader/writer lock */
+{
+ pthread_rwlock_rdlock(rwlock);
+}
+
+
+/*
+ * '_cupsRWLockWrite()' - Acquire a reader/writer lock for writing.
+ */
+
+void
+_cupsRWLockWrite(_cups_rwlock_t *rwlock)/* I - Reader/writer lock */
+{
+ pthread_rwlock_wrlock(rwlock);
+}
+
+
+/*
+ * '_cupsRWUnlock()' - Release a reader/writer lock.
+ */
+
+void
+_cupsRWUnlock(_cups_rwlock_t *rwlock) /* I - Reader/writer lock */
+{
+ pthread_rwlock_unlock(rwlock);
+}
+
+
+/*
* '_cupsThreadCreate()' - Create a thread.
*/
@@ -69,6 +129,18 @@ _cupsThreadCreate(
/*
+ * '_cupsMutexInit()' - Initialize a mutex.
+ */
+
+void
+_cupsMutexInit(_cups_mutex_t *mutex) /* I - Mutex */
+{
+ InitializeCriticalSection(&mutex->m_criticalSection);
+ mutex->m_init = 1;
+}
+
+
+/*
* '_cupsMutexLock()' - Lock a mutex.
*/
@@ -104,6 +176,50 @@ _cupsMutexUnlock(_cups_mutex_t *mutex) /* I - Mutex */
/*
+ * '_cupsRWInit()' - Initialize a reader/writer lock.
+ */
+
+void
+_cupsRWInit(_cups_rwlock_t *rwlock) /* I - Reader/writer lock */
+{
+ _cupsMutexInit((_cups_mutex_t *)rwlock);
+}
+
+
+/*
+ * '_cupsRWLockRead()' - Acquire a reader/writer lock for reading.
+ */
+
+void
+_cupsRWLockRead(_cups_rwlock_t *rwlock) /* I - Reader/writer lock */
+{
+ _cupsMutexLock((_cups_mutex_t *)rwlock);
+}
+
+
+/*
+ * '_cupsRWLockWrite()' - Acquire a reader/writer lock for writing.
+ */
+
+void
+_cupsRWLockWrite(_cups_rwlock_t *rwlock)/* I - Reader/writer lock */
+{
+ _cupsMutexLock((_cups_mutex_t *)rwlock);
+}
+
+
+/*
+ * '_cupsRWUnlock()' - Release a reader/writer lock.
+ */
+
+void
+_cupsRWUnlock(_cups_rwlock_t *rwlock) /* I - Reader/writer lock */
+{
+ _cupsMutexUnlock((_cups_mutex_t *)rwlock);
+}
+
+
+/*
* '_cupsThreadCreate()' - Create a thread.
*/
@@ -119,12 +235,24 @@ _cupsThreadCreate(
#else
/*
+ * '_cupsMutexInit()' - Initialize a mutex.
+ */
+
+void
+_cupsMutexInit(_cups_mutex_t *mutex) /* I - Mutex */
+{
+ (void)mutex;
+}
+
+
+/*
* '_cupsMutexLock()' - Lock a mutex.
*/
void
_cupsMutexLock(_cups_mutex_t *mutex) /* I - Mutex */
{
+ (void)mutex;
}
@@ -135,6 +263,51 @@ _cupsMutexLock(_cups_mutex_t *mutex) /* I - Mutex */
void
_cupsMutexUnlock(_cups_mutex_t *mutex) /* I - Mutex */
{
+ (void)mutex;
+}
+
+
+/*
+ * '_cupsRWInit()' - Initialize a reader/writer lock.
+ */
+
+void
+_cupsRWInit(_cups_rwlock_t *rwlock) /* I - Reader/writer lock */
+{
+ (void)rwlock;
+}
+
+
+/*
+ * '_cupsRWLockRead()' - Acquire a reader/writer lock for reading.
+ */
+
+void
+_cupsRWLockRead(_cups_rwlock_t *rwlock) /* I - Reader/writer lock */
+{
+ (void)rwlock;
+}
+
+
+/*
+ * '_cupsRWLockWrite()' - Acquire a reader/writer lock for writing.
+ */
+
+void
+_cupsRWLockWrite(_cups_rwlock_t *rwlock)/* I - Reader/writer lock */
+{
+ (void)rwlock;
+}
+
+
+/*
+ * '_cupsRWUnlock()' - Release a reader/writer lock.
+ */
+
+void
+_cupsRWUnlock(_cups_rwlock_t *rwlock) /* I - Reader/writer lock */
+{
+ (void)rwlock;
}
#endif /* HAVE_PTHREAD_H */