summaryrefslogtreecommitdiffstats
path: root/lib/event.c
AgeCommit message (Collapse)Author
2009-09-04Clear memory allocated by ralloc().Ondrej Zajicek
This also fixes bug that timer->recurrent was not cleared in tm_new() and unexpected recurrence of startup timer in BGP confused state machine and caused crash.
2008-12-18Fixes nasty bug in event processing.Ondrej Zajicek
WALK_LIST_DELSAFE (in ev_run_list) is not safe with regard to deletion of next node. When some events are rescheduled during event execution, it may lead to deletion of next node and some events are skipped. Such skipped nodes remain in temporary list on stack and the last of them contains 'next' pointer to stack area. When this event is later scheduled, it damages stack area trying to remove it from the list, which leads to random crashes with funny backtraces :-) .
2000-06-07Fixes to the progdoc.Martin Mares
2000-06-05Documented sockets, events and timers.Martin Mares
2000-04-28Event handlers no longer return re-queue flag. Instead of using it, justMartin Mares
call ev_schedule() on the same handler which should work perfectly now.
2000-01-16No more problems when events get scheduled during event processing.Martin Mares
1999-11-17ev_run() now returns whether the event has been requeued or not.Martin Mares
ev_run_list() now returns number of events which remain in the list.
1999-10-29Events now return a value. If it's non-zero, the event is re-queuedMartin Mares
for processing in next event cycle. This can be used to prevent background actions (hint: user commands) from hogging the CPU for too long time.
1999-02-11Real implementation of protocol state machines. Delayed startup/shutdownMartin Mares
should work now. Initial feeding of protocols by interfaces/routes is done from the event queue to prevent unwanted recursion.
1999-02-11Grrr, forgot to commit the event routines themselves :|Martin Mares