Gustavo Sverzut Barbieri schrieb: > On Mon, Nov 3, 2008 at 3:42 AM, Enlightenment SVN > <[EMAIL PROTECTED]> wrote: > >> Log: >> add patch to add a pipe handler for glueing threads to the core main loop >> via >> pipes - makes it save for a thread to send a message to the main loop and >> not >> need lots of thread locks etc. >> > > ok, this code have some minor problems, I should have looked at it > before, maybe I can fix it during my flight tomorrow, but: > - read/write need to catch errors, be them EINTR and EAGAIN since fd > is marked non-blocking. For EAGAIN we could either just retry or we > must keep size and "todo" in Ecore_Pipe as well as an allocated buffer > of required size, just dispatch when everything is read. (same for > write). > As Sachiel said, raster took the wrong patch. I'll commit the other one this evening. I don't claim that that one is perfect, but it does some error checking. > - for consistency, we should have handler() to return an int and > return that int in _ecore_pipe_read(). > And what should we do if the handler returns ECORE_CALLBACK_CANCEL? Should we only cancel the callback or also del (free) the whole pipe? > - example contais code that does not even compile, I spotted at > least "ecore_pipe_write(pipe, arg0);" but that function takes 3 > parameters, last one must be sizeof(void *) since you're writing the > pointer, but possible more stuff is missing. > Yes, I changed the examples in the other patch, too.
------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel