On Oct 26, 2016 6:19 PM, "Gustavo Sverzut Barbieri" <[email protected]>
wrote:
>
> barbieri pushed a commit to branch master.
>
>
http://git.enlightenment.org/core/efl.git/commit/?id=574e4b8ad56b0cced409417f76e90205fb28fe22
>
> commit 574e4b8ad56b0cced409417f76e90205fb28fe22
> Author: Gustavo Sverzut Barbieri <[email protected]>
> Date:   Wed Oct 26 23:17:10 2016 -0200
>
>     efl_io_copier: work around efl_future weirdness.
>
>     The pointer given to efl_future_use() should be NULL-ified before
>     calling my function, since that pointer has no meaning anymore.
>
>     The copier relied on pd->job being NULL to avoid useless rescheduling,
>     it was being reached with non-null, but that pointer is no longer
>     useful.
>
>     Moreover, I'm not sure if the second pointer, with the new future
>     won't be modified to NULL when the efl_future continues :-(

Yes, this is a problem I am well aware off.due to the use of eo for future,
weak ref are nulled only after the future is destroyed. But the real
correct behavior is to have it nulled as soon as it is fulfilled before
even calling any callback, because weak ref are to be used by cancel only.
They shouldn't exist when cancel can't be called anymore. I intend to fix
this when I move future away from eo.

> ---
>  src/lib/ecore/efl_io_copier.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/src/lib/ecore/efl_io_copier.c b/src/lib/ecore/efl_io_copier.c
> index ab5314a..0b2667c 100644
> --- a/src/lib/ecore/efl_io_copier.c
> +++ b/src/lib/ecore/efl_io_copier.c
> @@ -98,6 +98,8 @@ _efl_io_copier_job(void *data, const Efl_Event *ev
EINA_UNUSED)
>     uint64_t old_total = pd->progress.total;
>
>     _COPIER_DBG(o, pd);
> +   pd->job = NULL; /* XXX TODO this should be NULL-ified by efl_promise
before calling this function */
> +
>     efl_ref(o);
>
>     if (pd->source && efl_io_reader_can_read_get(pd->source))
>
> --
>
>
------------------------------------------------------------------------------
The Command Line: Reinvented for Modern Developers
Did the resurgence of CLI tooling catch you by surprise?
Reconnect with the command line and become more productive. 
Learn the new .NET and ASP.NET CLI. Get your free copy!
http://sdm.link/telerik
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to