Turn off the write handler when not needed.

SVN revision: 18943
This commit is contained in:
David Walter Seikel 2005-12-11 00:11:12 +00:00
parent 82021edf95
commit ba872e4bf9
1 changed files with 12 additions and 2 deletions

View File

@ -257,11 +257,12 @@ ecore_exe_pipe_run(const char *exe_cmd, Ecore_Exe_Flags flags, const void *data)
exe->write_fd_handler = ecore_main_fd_handler_add(exe->child_fd_write,
ECORE_FD_WRITE, _ecore_exe_data_write_handler, exe,
NULL, NULL);
if (exe->write_fd_handler)
ecore_main_fd_handler_active_set(exe->write_fd_handler, 0);
}
exes = _ecore_list2_append(exes, exe);
n = 0;
printf("Ecore_Exe %s success!\n", exe_cmd);
}
errno = n;
@ -293,6 +294,9 @@ ecore_exe_pipe_write(Ecore_Exe *exe, void *data, int size)
exe->write_data_buf = buf;
memcpy(exe->write_data_buf + exe->write_data_size, data, size);
exe->write_data_size += size;
if (exe->write_fd_handler)
ecore_main_fd_handler_active_set(exe->write_fd_handler, ECORE_FD_WRITE);
return 1;
}
@ -752,7 +756,11 @@ _ecore_exe_flush(Ecore_Exe *exe)
if (errno == EIO || errno == EBADF ||
errno == EPIPE || errno == EINVAL ||
errno == ENOSPC) /* we lost our server! */
ecore_exe_terminate(exe);
{
ecore_exe_terminate(exe);
if (exe->write_fd_handler)
ecore_main_fd_handler_active_set(exe->write_fd_handler, 0);
}
}
else
{
@ -763,6 +771,8 @@ _ecore_exe_flush(Ecore_Exe *exe)
exe->write_data_offset = 0;
free(exe->write_data_buf);
exe->write_data_buf = NULL;
if (exe->write_fd_handler)
ecore_main_fd_handler_active_set(exe->write_fd_handler, 0);
}
}
}