Ejemplo n.º 1
0
static inline void futex_init()
{
  mcs_pdr_init(&__futex.lock);
  TAILQ_INIT(&__futex.queue);
  __futex.timer_enabled = false;
  pthread_create(&__futex.timer, NULL, timer_thread, NULL);
  __futex.time = 0;
}
Ejemplo n.º 2
0
int upthread_cond_init(upthread_cond_t *c, const upthread_condattr_t *a)
{
	if(c == NULL)
		return EINVAL;

	mcs_pdr_init(&c->lock);
	STAILQ_INIT(&c->queue);
	return 0;
}
Ejemplo n.º 3
0
int lithe_mutex_init(lithe_mutex_t *mutex, lithe_mutexattr_t *attr)
{
  if(mutex == NULL)
    return EINVAL;
  if(attr == NULL)
    lithe_mutexattr_init(&mutex->attr);
  else
    mutex->attr = *attr;

  /* Do initialization. */
  TAILQ_INIT(&mutex->queue);
  mcs_pdr_init(&mutex->lock);
  mutex->qnode = NULL;
  mutex->locked = 0;
  mutex->owner = NULL;
  return 0;
}