ecore - efl thread - remove more copy & paste in fd in clearing handling
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>
Sat, 20 Jul 2019 10:46:07 +0000 (11:46 +0100)
committerSangHyeon Jade Lee <sh10233.lee@samsung.com>
Tue, 23 Jul 2019 05:04:43 +0000 (14:04 +0900)
move to common shared function to reduce c&p

src/lib/ecore/efl_thread.c

index f08be0e..3932928 100644 (file)
@@ -960,6 +960,15 @@ _efl_thread_efl_io_reader_eos_get(const Eo *obj EINA_UNUSED, Efl_Thread_Data *pd
    return pd->fd.eos_read;
 }
 
+static void
+_io_writer_write_fd_in_clear(Efl_Thread_Data *pd)
+{
+   close(pd->fd.in);
+   pd->fd.in = -1;
+   efl_del(pd->fd.in_handler);
+   pd->fd.in_handler = NULL;
+}
+
 EOLIAN static Eina_Error
 _efl_thread_efl_io_writer_write(Eo *obj, Efl_Thread_Data *pd, Eina_Slice *slice, Eina_Slice *remaining)
 {
@@ -991,22 +1000,14 @@ _efl_thread_efl_io_writer_write(Eo *obj, Efl_Thread_Data *pd, Eina_Slice *slice,
      efl_io_writer_can_write_set(obj, EINA_FALSE);
    if (r == 0)
      {
-        close(pd->fd.in);
-        pd->fd.in = -1;
-        efl_del(pd->fd.in_handler);
-        pd->fd.in_handler = NULL;
+        _io_writer_write_fd_in_clear(pd);
         _thread_exit_eval(obj, pd);
         return EPIPE;
      }
    return 0;
 err:
    if ((pd->fd.in != -1) && (errno != EAGAIN))
-     {
-        close(pd->fd.in);
-        pd->fd.in = -1;
-        efl_del(pd->fd.in_handler);
-        pd->fd.in_handler = NULL;
-     }
+     _io_writer_write_fd_in_clear(pd);
    if (remaining) *remaining = *slice;
    slice->len = 0;
    slice->mem = NULL;