示例#1
0
inline int xp_wait_until_condition(struct xp_queue *queue, int (*cfunction)(void *), void *cparam, int allow_interrupt)
{
	/* wait until cfunction(cparam) != 0 (condition is true) */

	if (allow_interrupt)
	{
		return wait_event_interruptible(queue->queue, cfunction(cparam) != 0);
	}
	else
	{
		wait_event(queue->queue, cfunction(cparam) != 0);
	}

	return 0;
}
示例#2
0
int xp_wait_until_condition(struct xp_queue *queue, int (*cfunction)(void *), void *cparam, int allow_interrupt)
{
	pthread_mutex_lock(&(queue->mutex));

	while (1)
	{
		if (cfunction(cparam))
			break;

		pthread_cond_wait(&(queue->condition), &(queue->mutex));
	}

	pthread_mutex_unlock(&(queue->mutex));

	return 0;
}
static void cfunction_generic(asIScriptGeneric *) {
	cfunction();
}