Lines Matching +full:wakeup +full:- +full:counter
59 return cred->uid; in heim_ipc_cred_get_uid()
65 return cred->gid; in heim_ipc_cred_get_gid()
71 return cred->pid; in heim_ipc_cred_get_pid()
77 return cred->session; in heim_ipc_cred_get_session()
87 (*cred)->uid = uid; in _heim_ipc_create_cred()
88 (*cred)->gid = gid; in _heim_ipc_create_cred()
89 (*cred)->pid = pid; in _heim_ipc_create_cred()
90 (*cred)->session = session; in _heim_ipc_create_cred()
98 long counter; member
114 HEIMDAL_MUTEX_init(&s->mutex); in heim_ipc_semaphore_create()
115 pthread_cond_init(&s->cond, NULL); in heim_ipc_semaphore_create()
116 s->counter = value; in heim_ipc_semaphore_create()
136 HEIMDAL_MUTEX_lock(&s->mutex); in heim_ipc_semaphore_wait()
137 /* if counter hits below zero, we get to wait */ in heim_ipc_semaphore_wait()
138 if (--s->counter < 0) { in heim_ipc_semaphore_wait()
142 ret = pthread_cond_wait(&s->cond, &s->mutex); in heim_ipc_semaphore_wait()
147 ret = pthread_cond_timedwait(&s->cond, &s->mutex, &ts); in heim_ipc_semaphore_wait()
150 HEIMDAL_MUTEX_unlock(&s->mutex); in heim_ipc_semaphore_wait()
154 HEIMDAL_MUTEX_unlock(&s->mutex); in heim_ipc_semaphore_wait()
169 int wakeup; in heim_ipc_semaphore_signal()
170 HEIMDAL_MUTEX_lock(&s->mutex); in heim_ipc_semaphore_signal()
171 wakeup = (++s->counter == 0) ; in heim_ipc_semaphore_signal()
172 HEIMDAL_MUTEX_unlock(&s->mutex); in heim_ipc_semaphore_signal()
173 if (wakeup) in heim_ipc_semaphore_signal()
174 pthread_cond_signal(&s->cond); in heim_ipc_semaphore_signal()
187 HEIMDAL_MUTEX_lock(&s->mutex); in heim_ipc_semaphore_release()
188 if (s->counter != 0) in heim_ipc_semaphore_release()
190 HEIMDAL_MUTEX_unlock(&s->mutex); in heim_ipc_semaphore_release()
191 HEIMDAL_MUTEX_destroy(&s->mutex); in heim_ipc_semaphore_release()
192 pthread_cond_destroy(&s->cond); in heim_ipc_semaphore_release()
200 if (data->data) in heim_ipc_free_data()
201 free(data->data); in heim_ipc_free_data()
202 data->data = NULL; in heim_ipc_free_data()
203 data->length = 0; in heim_ipc_free_data()