diff options
author | root <root> | 2007-11-26 10:20:42 +0000 |
---|---|---|
committer | root <root> | 2007-11-26 10:20:42 +0000 |
commit | 3ed29c5036af830bfd31a743094b587bc6aa1949 (patch) | |
tree | 979c57558625afd6238842bcb6212f82ae991d15 /ev.html | |
parent | 0a92349530f48869656f6696a354e308bd233c72 (diff) |
add some small complexities section
Diffstat (limited to 'ev.html')
-rw-r--r-- | ev.html | 30 |
1 files changed, 29 insertions, 1 deletions
@@ -6,7 +6,7 @@ <meta name="description" content="Pod documentation for libev" /> <meta name="inputfile" content="<standard input>" /> <meta name="outputfile" content="<standard output>" /> - <meta name="created" content="Mon Nov 26 10:52:13 2007" /> + <meta name="created" content="Mon Nov 26 11:20:35 2007" /> <meta name="generator" content="Pod::Xhtml 1.57" /> <link rel="stylesheet" href="http://res.tst.eu/pod.css"/></head> <body> @@ -52,6 +52,7 @@ <li><a href="#EXAMPLES">EXAMPLES</a></li> </ul> </li> +<li><a href="#COMPLEXITIES">COMPLEXITIES</a></li> <li><a href="#AUTHOR">AUTHOR</a> </li> </ul><hr /> @@ -1178,6 +1179,7 @@ pseudo-code only of course:</p> io_cb (ev_loop *loop, ev_io *w, int revents) { // set the relevant poll flags + // could also call adns_processreadable etc. here struct pollfd *fd = (struct pollfd *)w->data; if (revents & EV_READ ) fd->revents |= fd->events & POLLIN; if (revents & EV_WRITE) fd->revents |= fd->events & POLLOUT; @@ -1755,9 +1757,35 @@ that everybody includes and which overrides some autoconf choices:</p> <pre> #include "ev_cpp.h" #include "ev.c" + + + </pre> </div> +<h1 id="COMPLEXITIES">COMPLEXITIES</h1><p><a href="#TOP" class="toplink">Top</a></p> +<div id="COMPLEXITIES_CONTENT"> + <p>In this section the complexities of (many of) the algorithms used inside +libev will be explained. For complexity discussions about backends see the +documentation for <code>ev_default_init</code>.</p> + <p> + <dl> + <dt>Starting and stopping timer/periodic watchers: O(log skipped_other_timers)</dt> + <dt>Changing timer/periodic watchers (by autorepeat, again): O(log skipped_other_timers)</dt> + <dt>Starting io/check/prepare/idle/signal/child watchers: O(1)</dt> + <dt>Stopping check/prepare/idle watchers: O(1)</dt> + <dt>Stopping an io/signal/child watcher: O(number_of_watchers_for_this_(fd/signal/pid % 16))</dt> + <dt>Finding the next timer per loop iteration: O(1)</dt> + <dt>Each change on a file descriptor per loop iteration: O(number_of_watchers_for_this_fd)</dt> + <dt>Activating one watcher: O(1)</dt> + </dl> + </p> + + + + + +</div> <h1 id="AUTHOR">AUTHOR</h1><p><a href="#TOP" class="toplink">Top</a></p> <div id="AUTHOR_CONTENT"> <p>Marc Lehmann <libev@schmorp.de>.</p> |