From c83c7b9d34c4856e08c50a4a6c1417cdb2704348 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 1 Feb 2008 13:53:56 +0000 Subject: *** empty log message *** --- ev.pod | 14 ++++++++++++-- 1 file 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) 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 there were no other C +calls in the current loop iteration. Checking for async and signal events +involves iterating over all running async watchers or all signal numbers. + =back -- cgit v1.2.3