Lines Matching defs:barrier
17 CRServerBarrier *barrier;
28 barrier = (CRServerBarrier *) crHashtableSearch( cr_server.barriers, name );
52 if ( barrier == NULL )
54 barrier = (CRServerBarrier *) crAlloc( sizeof(*barrier) );
55 barrier->count = count;
56 barrier->num_waiting = 0;
57 barrier->waiting = (RunQueue **)
58 crAlloc( count * sizeof(*(barrier->waiting)) );
60 crHashtableAdd( cr_server.barriers, name, barrier );
62 sprintf( debug_buf, "This was a new barrier!" );
68 /* HACK -- this allows everybody to create a barrier, and all
72 sprintf( debug_buf, "I already knew about this barrier." );
75 if ( barrier->count != count )
82 "exists with count=%u", name, count, barrier->count );
87 crDebug("crserver: BarrierCreate(id=%d, count=%d)", name, barrier->count);
103 CRServerBarrier *barrier;
114 barrier = (CRServerBarrier *) crHashtableSearch( cr_server.barriers, name );
115 if ( barrier == NULL )
117 crError( "crServerDispatchBarrierExec: No such barrier: %d", name );
123 sprintf( debug_buf, "num_waiting = %d", barrier->num_waiting );
127 barrier->waiting[barrier->num_waiting++] = cr_server.run_queue;
131 if ( barrier->num_waiting == barrier->count )
137 cr_server.curClient, name, barrier->num_waiting,
138 barrier->count);
140 for ( i = 0; i < barrier->count; i++ )
142 barrier->waiting[i]->blocked = 0;
144 barrier->num_waiting = 0;
148 cr_server.curClient, name, barrier->num_waiting,
149 barrier->count);