eio - don't call cb's after a cancel
i saw a segv in e/efm .. an eio call was called after it had been canceled. this should never happen. ever. so ensure it does not once an eio file has been canceled. @fix
This commit is contained in:
parent
0e82fa3f40
commit
d6156d23d8
|
@ -739,6 +739,12 @@ eio_file_cancel(Eio_File *ls)
|
||||||
{
|
{
|
||||||
if (!ls) return EINA_FALSE;
|
if (!ls) return EINA_FALSE;
|
||||||
EINA_SAFETY_ON_NULL_RETURN_VAL(ls, EINA_FALSE);
|
EINA_SAFETY_ON_NULL_RETURN_VAL(ls, EINA_FALSE);
|
||||||
|
// ensure callbacks are not called aftera cancel otherwise bad things
|
||||||
|
// happen higher up the stack - you cant stop these being caleld even if
|
||||||
|
// the dataptr they are passed has been freed or invalidated. being unable
|
||||||
|
// to stop future cb's and cancel them is BAD.
|
||||||
|
ls->error_cb = NULL;;
|
||||||
|
ls->done_cb = NULL;
|
||||||
return ecore_thread_cancel(ls->thread);
|
return ecore_thread_cancel(ls->thread);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue