#include #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; }