Ejemplo n.º 1
0
static int pthread_timer_enable_continuous(void *data)
{
	struct pthread_timer *timer = data;

	ao2_lock(timer);
	if (!timer->continuous) {
		timer->continuous = true;
		signal_pipe(timer);
	}
	ao2_unlock(timer);

	return 0;
}
Ejemplo n.º 2
0
static int run_timer(void *obj, void *arg, int flags)
{
	struct pthread_timer *timer = obj;

	if (timer->state == TIMER_STATE_IDLE) {
		return 0;
	}

	ao2_lock(timer);
	if (check_timer(timer)) {
		timer->pending_ticks++;
		signal_pipe(timer);
	}
	ao2_unlock(timer);

	return 0;
}
Ejemplo n.º 3
0
static int pthread_timer_enable_continuous(int handle)
{
	struct pthread_timer *timer;

	if (!(timer = find_timer(handle, 0))) {
		errno = EINVAL;
		return -1;
	}

	ao2_lock(timer);
	if (!timer->continuous) {
		timer->continuous = true;
		signal_pipe(timer);
	}
	ao2_unlock(timer);

	ao2_ref(timer, -1);

	return 0;
}