wok diff perl-event/description.txt @ rev 25543

linux-cloop: update cloop.u
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sat Mar 11 12:33:53 2023 +0000 (20 months ago)
parents
children
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/perl-event/description.txt	Sat Mar 11 12:33:53 2023 +0000
     1.3 @@ -0,0 +1,46 @@
     1.4 +The Event module provides a central facility to watch for various types
     1.5 +of events and invokes a callback when these events occur.
     1.6 +The idea is to delay the handling of events so that they may be dispatched
     1.7 +in priority order when it is safe for callbacks to execute.
     1.8 +
     1.9 +Events (in the ordinary sense of the word) are detected by watchers, which
    1.10 +reify them as events (in the special Event module sense). For clarity, the
    1.11 +former type of events may be called "source events", and the latter
    1.12 +"target events".
    1.13 +Source events, such as signals arriving, happen whether or not they are
    1.14 +being watched. If a source event occurs which a watcher is actively watching
    1.15 +then the watcher generates a corresponding target event.
    1.16 +Target events are only created by watchers.
    1.17 +If several watchers are interested in the same source event then each will
    1.18 +generate their own target event. Hence, any particular source event may
    1.19 +result in zero, one, two, or any number of target events: the same as the
    1.20 +number of watchers which were actively watching for it.
    1.21 +
    1.22 +Target events are queued to be processed in priority order (priority being
    1.23 +determined by the creating watcher) and in FIFO order among events of the
    1.24 +same priority.
    1.25 +Queued ("pending") events can, in some cases, be cancelled before being
    1.26 +processed. A queued event is processed by being passed to the callback
    1.27 +function (or method on a particular object or class) which was specified
    1.28 +to the watcher.
    1.29 +
    1.30 +A watcher, once created, operates autonomously without the Event user
    1.31 +having to retain any reference to it. However, keeping a reference makes
    1.32 +it possible to modify most of the watcher's characteristics.
    1.33 +A watcher can be switched between active and inactive states.
    1.34 +When inactive, it does not generate target events.
    1.35 +
    1.36 +Some types of source event are not reified as target events immediately.
    1.37 +Signals received, for example, are counted initially. The counted signals
    1.38 +are reified at certain execution points. Hence, signal events may be
    1.39 +processed out of order, and if handled carelessly, on the wrong side of
    1.40 +a state change in event handling.
    1.41 +A useful way to view this is that occurrence of the source event is not
    1.42 +actually the arrival of the signal but is triggered by the counting of
    1.43 +the signal.
    1.44 +
    1.45 +Reification can be forced when necessary. The schedule on which some
    1.46 +other events are created is non-obvious. This is especially the case
    1.47 +with watchers that watch for a condition rather than an event.
    1.48 +In some cases, target events are generated on a schedule that depends
    1.49 +on the operation of the event loop.