On 2008-06-23, Tuomo Valkonen <[EMAIL PROTECTED]> wrote: > instead of more work on libmainloop, I'd rather see a patch to use > libevent. Also, there are other signals for which the race condition > remains (it is there even now). pselect() is the correct solution.
Before anyone rushes to implement the support, I should note that libevent needs to be fixed first: it some places, it exit()s on error. That behaviour is totally unacceptable. Interactive programs should recover from errors. (Suppose e.g. that there's no memory for internal structures to manage a new window. Then we simply should not manage that window, instead of crashing all of X.) My computer still is not a Turing machine [1]. The default behaviour of the Linux memory manager is a fatal bug, totally unacceptable in quality software (which Linux isn't). There's also an alternative to libevent, ev [2] that has been designed expecting this bug: it always aborts on memory allocation error, as well as some other errors, instead of failing with an error code, so that the application can recover gracefully. [1]: http://modeemi.fi/~tuomov/b/archives/2007/02/16/T19_26_12/ [2]: http://software.schmorp.de/pkg/libev.html -- Tuomo
