Lines Matching full:lock
9 struct lock { struct
59 * Lock support.
63 struct lock *lock; in PyThread_allocate_lock() local
70 lock = (struct lock *) malloc(sizeof(struct lock)); in PyThread_allocate_lock()
71 lock->lock_locked = 0; in PyThread_allocate_lock()
72 (void) mon_create(&lock->lock_monitor); in PyThread_allocate_lock()
73 (void) cv_create(&lock->lock_condvar, lock->lock_monitor); in PyThread_allocate_lock()
74 dprintf(("PyThread_allocate_lock() -> %p\n", lock)); in PyThread_allocate_lock()
75 return (PyThread_type_lock) lock; in PyThread_allocate_lock()
78 void PyThread_free_lock(PyThread_type_lock lock) in PyThread_free_lock() argument
80 dprintf(("PyThread_free_lock(%p) called\n", lock)); in PyThread_free_lock()
81 mon_destroy(((struct lock *) lock)->lock_monitor); in PyThread_free_lock()
82 free((char *) lock); in PyThread_free_lock()
85 int PyThread_acquire_lock(PyThread_type_lock lock, int waitflag) in PyThread_acquire_lock() argument
89 dprintf(("PyThread_acquire_lock(%p, %d) called\n", lock, waitflag)); in PyThread_acquire_lock()
92 (void) mon_enter(((struct lock *) lock)->lock_monitor); in PyThread_acquire_lock()
94 while (((struct lock *) lock)->lock_locked) in PyThread_acquire_lock()
95 cv_wait(((struct lock *) lock)->lock_condvar); in PyThread_acquire_lock()
96 if (!((struct lock *) lock)->lock_locked) { in PyThread_acquire_lock()
98 ((struct lock *) lock)->lock_locked = 1; in PyThread_acquire_lock()
100 cv_broadcast(((struct lock *) lock)->lock_condvar); in PyThread_acquire_lock()
101 mon_exit(((struct lock *) lock)->lock_monitor); in PyThread_acquire_lock()
102 dprintf(("PyThread_acquire_lock(%p, %d) -> %d\n", lock, waitflag, success)); in PyThread_acquire_lock()
106 void PyThread_release_lock(PyThread_type_lock lock) in PyThread_release_lock() argument
108 dprintf(("PyThread_release_lock(%p) called\n", lock)); in PyThread_release_lock()
109 (void) mon_enter(((struct lock *) lock)->lock_monitor); in PyThread_release_lock()
110 ((struct lock *) lock)->lock_locked = 0; in PyThread_release_lock()
111 cv_broadcast(((struct lock *) lock)->lock_condvar); in PyThread_release_lock()
112 mon_exit(((struct lock *) lock)->lock_monitor); in PyThread_release_lock()