Ejemplo n.º 1
0
Event event_next()
{
    while (!event_peek()) {
        sleep_enable();
        sleep_cpu();
        sleep_disable();
    }
    return event_pop();
}
Ejemplo n.º 2
0
Archivo: event.c Proyecto: barak/lush
static at *test_event_sub(int arg_number, at **arg_array, int remove)
{
   /* Validate parameters */
   at *handler = NIL;
   if (arg_number == 0)
      handler = current_window_handler();
   else if (arg_number == 1)
      handler = APOINTER(1);
   else 
      ARG_NUMBER(-1);

   /* Perform */
   call_spoll();
   at *r = handler ? event_get(handler, remove) : event_peek();
   return r;
}
Ejemplo n.º 3
0
Event event_pop()
{
    Event *e = event_peek();

    if (!e || e->id == EVENT_INVALID) 
        return InvalidEvent;

    Event ret = *e;

    _event_queue[_event_queue_head] = InvalidEvent;
    _event_queue_size--;
    if (++_event_queue_head >= EVENT_QUEUE_MAX_SIZE) {
        _event_queue_head = 0;
    }
    return ret;
}