Ejemplo n.º 1
0
static void close_queue (job_queue_t *q) {	
	q->status = QUEUE_CLOSED;
#ifdef NO_CACHE_COHERENCE
	int i;
	for (i = 0; i < waiting_threads; i++) //Dirty trick to solve the problem of pthread_broadcast on MPPA
		COND_VAR_SIGNAL(q->cond_var);
#else
	COND_VAR_BROADCAST(q->cond_var);
#endif
}
Ejemplo n.º 2
0
Archivo: main.c Proyecto: mbcastro/tsp
void wait_barrier (barrier_par_t barrier_par) {
	int limit = barrier_par.int_t;
	COND_VAR_MUTEX_LOCK(sync_barrier);
	running_count++;
	if (running_count == limit) {
		running_count = 0;
		COND_VAR_BROADCAST(sync_barrier);
	} else 
		COND_VAR_WAIT(sync_barrier);
	COND_VAR_MUTEX_UNLOCK(sync_barrier);
}