summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changes2
-rw-r--r--ev.c6
-rw-r--r--ev.pod7
3 files changed, 10 insertions, 5 deletions
diff --git a/Changes b/Changes
index 776a0c9..1a8822b 100644
--- a/Changes
+++ b/Changes
@@ -1,9 +1,7 @@
Revision history for libev, a high-performance and full-featured event loop.
TODO: ABI??? API????? Changes???
-TODO: win32 write() to socket for signal handling
TODO: EV_USE__XXX default with config, document
-TODO: portbality section, solaris errno rrentrant, aix, win32, linux 32 bit
TODO: include ev_xyz_start in each example?
TODO: section watcher states/lifetime
- "PORTING FROM LIBEV 3.X TO 4.X" (in ev.pod) is recommended reading.
diff --git a/ev.c b/ev.c
index c023764..81bbd88 100644
--- a/ev.c
+++ b/ev.c
@@ -1283,6 +1283,11 @@ evpipe_write (EV_P_ EV_ATOMIC_T *flag)
}
else
#endif
+ /* win32 people keep sending patches that change this write() to send() */
+ /* and then run away. but send() is wrong, it wants a socket handle on win32 */
+ /* so when you think this write should be a send instead, please find out */
+ /* where your send() is from - it's definitely not the microsoft send, and */
+ /* tell me. thank you. */
write (evpipe [1], &dummy, 1);
errno = old_errno;
@@ -1306,6 +1311,7 @@ pipecb (EV_P_ ev_io *iow, int revents)
#endif
{
char dummy;
+ /* see discussion in evpipe_write when you think this read should be recv in win32 */
read (evpipe [0], &dummy, 1);
}
diff --git a/ev.pod b/ev.pod
index 1eeb5c2..406d3ca 100644
--- a/ev.pod
+++ b/ev.pod
@@ -4443,7 +4443,7 @@ a loop.
All that's left is C<select>, and of course Apple found a way to fuck this
one up as well: On OS/X, C<select> actively limits the number of file
-descriptors you can pass in to 1024 - your program suddenyl crashes when
+descriptors you can pass in to 1024 - your program suddenly crashes when
you use more.
There is an undocumented "workaround" for this - defining
@@ -4470,8 +4470,9 @@ freezes or you get a large number of spurious wakeups, make sure you have
all the relevant and latest kernel patches applied. No, I don't know which
ones, but there are multiple ones.
-If you can't get it to work, you can try running the program with
-C<LIBEV_FLAGS=3> to only allow C<poll> and C<select> backends.
+If you can't get it to work, you can try running the program by setting
+the environment variable C<LIBEV_FLAGS=3> to only allow C<poll> and
+C<select> backends.
=head2 AIX POLL BUG