ecore ipc - fix flush to not lose messages

it wasn't looking at the copier queue "todo" at all thus skipping it
on flush. this will fix flushing of ecore ipc message buffers. this
happens to also now fix terminology's "one process" mode.

@fix
This commit is contained in:
Carsten Haitzler 2018-03-26 18:18:30 +09:00
parent 2c76889347
commit fd6d9da8fa
1 changed files with 2 additions and 1 deletions

View File

@ -1078,7 +1078,8 @@ ecore_ipc_server_flush(Ecore_Ipc_Server *svr)
while (!efl_io_closer_closed_get(svr->dialer.dialer) &&
!efl_net_dialer_connected_get(svr->dialer.dialer))
ecore_main_loop_iterate();
while (efl_io_queue_usage_get(svr->dialer.input) > 0)
while ((efl_io_queue_usage_get(svr->dialer.input) > 0) ||
(efl_io_copier_pending_size_get(svr->dialer.send_copier) > 0))
efl_io_copier_flush(svr->dialer.send_copier, EINA_TRUE, EINA_TRUE);
return;
}