I just pushed: eb0b826776b60e0d97218242a5c285d146fb6f3b
https://git.enlightenment.org/core/efl.git/commit/?id=1bdd9e4dd15fc27da43b50fd29bfb1b0b30ef6bd I wrote up a high level design document and description here for an idea of how it works: https://phab.enlightenment.org/w/efl-loops-threads/ I'm busy filling that document out a bit, but the core essentials are there. There are some details like loop having an exit eina value vs task having a simple int exit code (i'm sticking to this because it is what processes do, it's simple and its universally supported between processes, unlike an eina value). yes - it simplifies threads to only having int exit codes, but the simplicity of the design is what I'm going for. threads like executeables have full bytestream I/O for more complex data interchange. So there probably needs to be a bit of adjusting here and there to remove duplication. The Arguments event delivers arguments in an array, but the task object also stores arguments too permanently. Do we need to double-up the information? So a few small things like this. I've given this design a lot of thought and what I have here I think is clean and neat, tidy and fairly simple. It actually does work. I have tested it of course. But please have a look and let me know what you think. Are there some major defects in the design and idea? I know we can expand this in future with more controls (I have no pause/resume controls in the task interface but there should be. For processes use SIGSTOP/CONT and for threads a co-operative request on the control line). The internals could be better. I use pipes and this eats up a lot of FD's for the threads where I could use socketpairs instead. I have a separate control pipe in/out from I/O in/out where i could multiplex on the same socketpair. Currently we run out of FD's (after about 240 threads running at once because they eat up 8 FD's per thread. The Efl.Io code across the classes is a lot of copy & paste... And I don't have anything to change priority of a thread once it has run (no eina API for this - needs to be added). I'm not that happy though with Efl.Io and the sheer amount of code needed to deal with it. Even as a user of the API. Anyway - comments, thoughts, etc. etc. ? -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- Carsten Haitzler - ras...@rasterman.com ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel