By default, whenever a pending event becomes active (because its file descriptor is ready to read or write, or because its timeout expires), it becomes non-pending right before its callback is executed. Thus, to make the event pending again one may call Event::add() on it again from inside the callback function.
If the
Event::PERSIST
flag is set on an event, however, the event is
persistent.
This means that event remains pending even when its callback is activated.
Event::del()
method can be called to make it non-pending.
The timeout on a persistent event resets whenever the event's callback runs.
Thus, if one has an event with flags
Event::READ
|
Event::PERSIST
and a timeout of five seconds, the event will become active:
Whenever the socket or file descriptor is ready for reading.
Whenever five seconds have passed since the event last became active.
See also » Fast portable non-blocking network programming with Libevent, About Event Persistence
Follow Lee on X/Twitter - Father, Husband, Serial builder creating AI, crypto, games & web tools. We are friends :) AI Will Come To Life!
Check out: eBank.nz (Art Generator) |
Netwrck.com (AI Tools) |
Text-Generator.io (AI API) |
BitBank.nz (Crypto AI) |
ReadingTime (Kids Reading) |
RewordGame |
BigMultiplayerChess |
WebFiddle |
How.nz |
Helix AI Assistant