Page MenuHomePhabricator

ecore-evas creates duplicate fd handler and mismanages evas async event pipe
Closed, ResolvedPublic

Description

#5  0x00007ff2ef2d3e99 in ecore_main_fd_handler_add (fd=15, flags=ECORE_FD_READ, func=0x7ff2ef31f454 <_ecore_pipe_read>, data=0x5628a9323400, buf_func=0x0, buf_data=0x0) at lib/ecore/ecore_main.c:1382
#6  0x00007ff2ef31eb2c in ecore_pipe_full_add (handler=0x7ff2eecab1c8 <_async_events_pipe_read_cb>, data=0x0, fd_read=15, fd_write=16, read_survive_fork=0 '\000', write_survive_fork=0 '\000') at lib/ecore/ecore_pipe.c:361
#7  0x00007ff2ef31eb8e in _ecore_pipe_add (handler=0x7ff2eecab1c8 <_async_events_pipe_read_cb>, data=0x0) at lib/ecore/ecore_pipe.c:371
#8  0x00007ff2ef31e034 in ecore_pipe_add (handler=0x7ff2eecab1c8 <_async_events_pipe_read_cb>, data=0x0) at lib/ecore/ecore_pipe.c:107
#9  0x00007ff2eecab506 in evas_async_events_init () at lib/evas/canvas/evas_async_events.c:127

This fd handler is created for a pipe which already has a fd handler and is managed internally by evas. Deleting this fd handler at any time will always be an error, and doing anything from the read callback of the fd handler will also always be an error.