From 67377753a259e327fb690da4f8ed746a8819f22e Mon Sep 17 00:00:00 2001 From: root Date: Mon, 10 Jan 2011 14:24:26 +0000 Subject: *** empty log message *** --- Changes | 1 + ev.pod | 18 ++++++++++-------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/Changes b/Changes index 2df0236..4f41ed1 100644 --- a/Changes +++ b/Changes @@ -5,6 +5,7 @@ thread usage, coroutine switch? TODO: frankenpoll TODO: frankenports +TODO: allow files and so on 4.03 - support files, /dev/zero etc. the same way as select in the epoll backend, by generating events on our own. diff --git a/ev.pod b/ev.pod index 56156b6..79e49d8 100644 --- a/ev.pod +++ b/ev.pod @@ -584,19 +584,21 @@ immensely. This uses the Solaris 10 event port mechanism. As with everything on Solaris, it's really slow, but it still scales very well (O(active_fds)). -Please note that Solaris event ports can deliver a lot of spurious -notifications, so you need to use non-blocking I/O or other means to avoid -blocking when no data (or space) is available. - While this backend scales well, it requires one system call per active file descriptor per loop iteration. For small and medium numbers of file descriptors a "slow" C or C backend might perform better. -On the positive side, with the exception of the spurious readiness -notifications, this backend actually performed fully to specification -in all tests and is fully embeddable, which is a rare feat among the -OS-specific backends (I vastly prefer correctness over speed hacks). +On the positive side, this backend actually performed fully to +specification in all tests and is fully embeddable, which is a rare feat +among the OS-specific backends (I vastly prefer correctness over speed +hacks). + +On the negative side, the interface is I, with the event polling +function sometimes returning events to the caller even though an error +occured, but with no indication whether it has done so or not (yes, it's +even documented that way) - deadly for edge-triggered interfaces, but +fortunately libev seems to be able to work around it. This backend maps C and C in the same way as C. -- cgit v1.2.3