Lines Matching defs:sema
155 CRServerSemaphore *sema;
163 sema = crHashtableSearch(cr_server.semaphores, name);
164 if (sema)
167 sema = (CRServerSemaphore *) crAlloc( sizeof( *sema ) );
168 crHashtableAdd( cr_server.semaphores, name, sema );
169 sema->count = count;
170 sema->waiting = sema->tail = NULL;
189 CRServerSemaphore *sema;
197 sema = (CRServerSemaphore *) crHashtableSearch( cr_server.semaphores, name );
198 if (!sema)
202 if (sema->count)
207 cr_server.curClient, name, sema->count, sema->count - 1);
208 sema->count--;
216 cr_server.curClient, name, sema->count);
221 if (sema->tail)
223 sema->tail->next = node;
227 sema->waiting = node;
229 sema->tail = node;
236 CRServerSemaphore *sema;
244 sema = (CRServerSemaphore *) crHashtableSearch( cr_server.semaphores, name );
245 if (!sema)
249 if (sema->waiting)
251 wqnode *temp = sema->waiting;
254 cr_server.curClient, name, sema->count);
257 sema->waiting = temp->next;
259 if (!sema->waiting)
261 sema->tail = NULL;
269 cr_server.curClient, name, sema->count, sema->count + 1);
270 sema->count++;