>     efl_future_Eina_FutureXXX_then(data, f);

now must rename these efl_future_Eina_FutureXXX_then() helpers to
efl_future_then().

Worth remembering: efl_future_then() is the one that links/binds an
object to the future, if the object dies, then the futures are
cancelled.

After that we need to ping q66 to change future<Type> to the new Eina_Future:

  - if <Type>, then provide a type to be checked by efl_future_then_easy()

  - all properties/methods generated by eolian should apply
efl_future_then() (or variant) to their result. This enforces the
object is linked with the future. Maybe make this explicit (ie:
@bound(future<Type>)) or explicitly disable (@unbond(future<Type>), my
preference since it's less common).

then you can remove those from code, I tried to mark all of them, see:
https://git.enlightenment.org/core/efl.git/tree/src/lib/ecore/ecore_main.c#n3217

In a next-usability step, we should have Eolian to generate
Eina_Value_Struct_Desc for Type. This is required for validators AND
for users of the struct, which could use the "mem" field with a cast
OR use eina_value_struct_... method.

and I just noticed that eina_future_then_easy() (and efl_... variant)
will not check for the struct desc, just type comparison (which is
"struct", but not "which struct"), so likely extend
Eina_Future_Cb_Easy_Desc with:

   union {
      const Eina_Value_Struct_Desc *struct_desc;
      const Eina_Value_Type *subtype; // array, list, hash
   };

this way, the easy validator would do extended checks for those types.
Eolian has the info to generate those, as we have builtin types.

I recall eina_future_race uses a custom struct and can serve as base
for such work.


-- 
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

Reply via email to