hey some notes about Windows:
* polling is mainly done with select() (for sockets) and the Wait* functions. There are others ways to poll but they are the main functions for that task. Maybe this can be added in the wiki * about eina_future_cb_console(), it must work with the Windows console (used also by MSYS1, with I/O redirections) and mintty (used also by the cygwin terminal and MSYS2, with pipes). I have managed both printing in eina_log. I think that this should (must) be supported for your implementation. Vincent On Sat, Aug 26, 2017 at 5:09 AM, Gustavo Sverzut Barbieri <barbi...@gmail.com> wrote: > Hi all, > > As some may have followed at IRC, ProFUSION embedded systems dedicate > some effort to make a new, simpler, leaner and easier Future and > Promise implementation. > > If you're new to Promise and Future, want to know what problems it > solve and how our design looks, please read > https://phab.enlightenment.org/w/future_promise/ (which I just > updated, then if you read it before, do it again). > > Our engineer, Guilherme Iscaro, worked for weeks and more than 10 > interactions to deliver the code at > https://phab.enlightenment.org/D5131, which I kindly ask for you to > review and test. I plan to merge this on Monday night if nothing big > shows. > > What makes us happy is that the core is very lean on memory and > simple. So easy that it could be moved to Eina, solving the old > implementation issue where promise was implemented in one library > while Future was in another -- They also involved Eo, which is way > heavier than our new implementation which is only 16 bytes per Promise > and 28 bytes per Future (32bits). > > With some macros with could deliver some syntax sugar to eliminate > functions with half dozen "NULL" pointers. Even better one can also > provide "named" parameters using the structure members. > > Previously ignored and now handled is the type of the result. Before > the function would get a pointer to the value and would need to know > how to interpret it, trusting it's the expected type and how to > release the memory was mostly undefined, particularly with chaining > and conversion. > > Eina_Value is used to carry type information with the actual value, > providing many benefits: > - runtime type checking > - provides information how to release memory (eina_value_flush) > - provides information how to copy memory (eina_value_copy) > - provides conversion to other types, like to string (eina_value_to_string) > - extensible, one can provide new Eina_Value_Type in their own code/library > - can be passed on the stack and returned as value, avoid memory > allocations and programming errors. > > There is a drawback: it's recommended to always check value.type prior > to use eina_value_get(), some utilities are provided to help with > basic types. C++ should provide some templates to help with such > mundane tasks. In C11 we could use _Generic() to provide something > similar. > > This email is already long enough, please check the Wiki for > motivation, details and examples. > https://phab.enlightenment.org/w/future_promise/ > > Please review the code before Monday night, when I plan to merge this. > https://phab.enlightenment.org/D5131 > > Cheers, > > -- > Gustavo Sverzut Barbieri > -------------------------------------- > Mobile: +55 (16) 99354-9890 > > ------------------------------------------------------------------------------ > 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 ------------------------------------------------------------------------------ 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