1 |
============================================================================= |
2 |
|
3 |
choice of c-level coroutine model: |
4 |
|
5 |
# to be written, please read the messages you get while configuring Coro |
6 |
|
7 |
============================================================================= |
8 |
|
9 |
Event-0.84 cannot be found / Event programs do not work. |
10 |
|
11 |
There is a serious bug in Event's poll implementation (if your os uses |
12 |
select for io multiplexing then this bug doesn't affect you), in that |
13 |
errors never get reported and result in endless loops. |
14 |
|
15 |
The fix is easy. Unpack Event and edit the file c/unix.c and look for the |
16 |
following line (at or around line 141 in the file): |
17 |
|
18 |
if (mask & (POLLRDBAND | POLLPRI)) got |= PE_E; |
19 |
|
20 |
now replace this line by: |
21 |
|
22 |
if (mask & (POLLRDBAND | POLLPRI | POLLERR | POLLHUP)) got |= PE_E; |
23 |
|
24 |
and then recompile. |
25 |
|
26 |
============================================================================= |