Page MenuHomePhabricator

efl_mono: Initial support for Futures/Promises

Authored by lauromoura on May 16 2018, 4:59 PM.



Promise/Future cleanup:

In the promises, we use a wrapper Eina_Promise_Cancel_Cb to
invalidate the wrapper if it ever gets cancelled from outside. When
invalidating from C#, we can do it directly.

For the futures, likewise, in order to be able to invalidate the
wrapper when the chain it belongs to gets resolved we then() an
internal future with a callback to invalidate the wrapper we return to
C#. The return of this intermediate then() is the future we actually
return to the user.

Also added ECANCELED to the list of default eina.Errors
Depends on D6173

Diff Detail

rEFL core/efl
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.
lauromoura created this revision.May 16 2018, 4:59 PM
felipealmeida accepted this revision.May 17 2018, 11:37 AM
This revision is now accepted and ready to land.May 17 2018, 11:37 AM
This revision was automatically updated to reflect the committed changes.