12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #include <stdlib.h>
- #include "mallocvar.h"
- #include "pthreadx.h"
- #include "lock.h"
- #include "lock_pthread.h"
- static lockAcquireFn acquire;
- static void
- acquire(struct lock * const lockP) {
- pthread_mutex_lock(&lockP->theLock);
- }
- static lockReleaseFn release;
- static void
- release(struct lock * const lockP) {
- pthread_mutex_unlock(&lockP->theLock);
- }
- static lockDestroyFn destroy;
- static void
- destroy(struct lock * const lockP) {
- pthread_mutex_destroy(&lockP->theLock);
- free(lockP);
- }
- struct lock *
- curlLock_create_pthread(void) {
- struct lock * lockP;
- MALLOCVAR(lockP);
- if (lockP) {
- pthread_mutex_init(&lockP->theLock, NULL);
- lockP->acquire = &acquire;
- lockP->release = &release;
- lockP->destroy = &destroy;
- }
- return lockP;
- }
|