efl_mono: Initial support for Futures/Promises
authorLauro Moura <lauromoura@expertisesolutions.com.br>
Fri, 20 Apr 2018 21:17:26 +0000 (18:17 -0300)
committerWonki Kim <wonki_.kim@samsung.com>
Fri, 1 Jun 2018 01:51:29 +0000 (10:51 +0900)
commit262dc320d3e35f89b0cb0b2376b403cec13c4a69
tree189fe62dcdfb74c5093b469bb0647ecf89144cc1
parent995a8523d70be0d06f933ca540036ee25692f341
efl_mono: Initial support for Futures/Promises

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

Reviewers: felipealmeida

Reviewed By: felipealmeida

Subscribers: cedric, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6174
src/Makefile_Efl_Mono.am
src/bin/eolian_mono/eolian/mono/blacklist.hh
src/bindings/mono/eina_mono/eina_error.cs
src/bindings/mono/eina_mono/eina_promises.cs [new file with mode: 0644]
src/tests/efl_mono/Promises.cs [new file with mode: 0644]