« Previous | Next » 

Revision e8f73195

IDe8f73195fa68b027fdcb89f239107c2d4902bd9a
Parent edf62ba1
Child 3b15402f

Added by Martin Mares over 22 years ago

Added simple event scheduling system to avoid recursive calling
of various callbacks.

Events are just another resource type objects (thus automatically freed
and unlinked when the protocol using them shuts down). Each event can
be linked in at most one event list. For most purposes, just use the
global event list handled by the following functions:

ev_schedule    Schedule event to be called at the next event
scheduling point. If the event was already
scheduled, it's just re-linked to the end of the list.
ev_postpone Postpone an already scheduled event, so that it
won't get called. Postponed events can be scheduled
again by ev_schedule().

You can also create custom event lists to build your own synchronization
primitives. Just use:

ev_init_list    to initialize an event list
ev_enqueue to schedule event on specified event list
ev_postpone works as well for custom lists
ev_run_list to run all events on your custom list
ev_run to run a specific event and dequeue it

Files

  • added
  • modified
  • copied
  • renamed
  • deleted

View differences