summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <root>2008-02-01 13:53:56 +0000
committerroot <root>2008-02-01 13:53:56 +0000
commitc83c7b9d34c4856e08c50a4a6c1417cdb2704348 (patch)
tree786c1f68ef1b509e3644c34763a7a69192b4eb42
parent77fb4c9ac3cdd8ddedeec7efb23c31abcfcf0783 (diff)
*** empty log message ***
-rw-r--r--ev.pod14
1 files changed, 12 insertions, 2 deletions
diff --git a/ev.pod b/ev.pod
index 7d7c36a..16bf5be 100644
--- a/ev.pod
+++ b/ev.pod
@@ -2914,11 +2914,11 @@ have to skip roughly seven (C<ld 100>) of these watchers.
That means that changing a timer costs less than removing/adding them
as only the relative motion in the event queue has to be paid for.
-=item Starting io/check/prepare/idle/signal/child watchers: O(1)
+=item Starting io/check/prepare/idle/signal/child/fork/async watchers: O(1)
These just add the watcher into an array or at the head of a list.
-=item Stopping check/prepare/idle watchers: O(1)
+=item Stopping check/prepare/idle/fork/async watchers: O(1)
=item Stopping an io/signal/child watcher: O(number_of_watchers_for_this_(fd/signal/pid % EV_PID_HASHSIZE))
@@ -2946,6 +2946,16 @@ priority. When doing priority-based operations, libev usually has to
linearly search all the priorities, but starting/stopping and activating
watchers becomes O(1) w.r.t. prioritiy handling.
+=item Sending an ev_async: O(1)
+
+=item Processing ev_async_send: O(number_of_async_watchers)
+
+=item Processing signals: O(max_signal_number)
+
+Sending involves a syscall I<iff> there were no other C<ev_async_send>
+calls in the current loop iteration. Checking for async and signal events
+involves iterating over all running async watchers or all signal numbers.
+
=back