--- EV/schmorp.h 2009/07/15 16:58:53 1.4 +++ EV/schmorp.h 2009/07/17 14:49:33 1.5 @@ -6,6 +6,7 @@ */ #include +#include #ifndef _WIN32 # include @@ -403,7 +404,11 @@ WriteFile (S_TO_HANDLE (epp->fd [1]), (LPCVOID)&dummy, 1, &dummy, 0); #else static uint64_t counter = 1; - write (epp->fd [1], &counter, epp->len); + /* some modules accept fd's from outside, support eventfd here */ + if (write (epp->fd [1], &counter, epp->len) < 0 + && errno == EINVAL + && epp->len != 8) + write (epp->fd [1], &counter, (epp->len = 8)); #endif } }