diff options
author | msweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be> | 2010-11-17 18:58:56 +0000 |
---|---|---|
committer | msweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be> | 2010-11-17 18:58:56 +0000 |
commit | 1106b00e75e37e7f25a28ee95da560de55520018 (patch) | |
tree | 3cf4bf7fe0423f2425a401d1c76a5b62ce533f3c /cups/thread.c | |
parent | 10d09e334a4892cd5ed4e2a2a0f5bbe3c8c171ed (diff) | |
download | cups-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.c | 173 |
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 */ |