Enlightenment CVS committal
Author : raster
Project : e17
Module : libs/ecore
Dir : e17/libs/ecore/src
Modified Files:
Tag: SPLIT
ecore.c ecore_exe.c ecore_main.c ecore_private.h
Log Message:
update
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/Attic/ecore.c,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -3 -r1.1.2.1 -r1.1.2.2
--- ecore.c 13 Jan 2003 00:25:19 -0000 1.1.2.1
+++ ecore.c 13 Jan 2003 07:40:13 -0000 1.1.2.2
@@ -14,6 +14,7 @@
int
ecore_init(void)
{
+ _ecore_signal_init();
}
/**
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/Attic/ecore_exe.c,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -3 -r1.1.2.3 -r1.1.2.4
--- ecore_exe.c 13 Jan 2003 00:34:59 -0000 1.1.2.3
+++ ecore_exe.c 13 Jan 2003 07:40:13 -0000 1.1.2.4
@@ -3,6 +3,7 @@
#include <sys/types.h>
#include <signal.h>
+#include <unistd.h>
/**
* Spawn off a child process and return a handle to that process
@@ -22,6 +23,26 @@
Ecore_Exe *
ecore_exe_run(char *exe_cmd, void *data)
{
+ Ecore_Exe *exe;
+ pid_t pid;
+
+ pid = fork();
+ if (pid)
+ {
+ exe = calloc(1, sizeof(Ecore_Exe));
+ if (!exe)
+ {
+ kill(pid, SIGKILL);
+ return NULL;
+ }
+ exe->pid = pid;
+ exe->data = data;
+ return exe;
+ }
+ setsid();
+ execl("/bin/sh", "/bin/sh", "-c", exe_cmd, NULL);
+ exit(0);
+ return NULL;
}
/**
@@ -34,6 +55,7 @@
pid_t
ecore_exe_pid_get(Ecore_Exe *exe)
{
+ return exe->pid;
}
/**
@@ -47,6 +69,7 @@
void *
ecore_exe_data_get(Ecore_Exe *exe)
{
+ return exe->data;
}
/**
@@ -82,9 +105,8 @@
void
ecore_exe_terminate(Ecore_Exe *exe)
{
- kill(exe->pid, SIGQUIT);
+ kill(exe->pid, SIGTERM);
}
-
/**
* Control an executed child
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/Attic/ecore_main.c,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -u -3 -r1.1.2.2 -r1.1.2.3
--- ecore_main.c 13 Jan 2003 00:25:19 -0000 1.1.2.2
+++ ecore_main.c 13 Jan 2003 07:40:13 -0000 1.1.2.3
@@ -114,9 +114,7 @@
/* process signals into events .... */
if (have_signal)
{
- /* FIXME: implement signal -> event converters here */
- /* FIXME: need ecore_signal.c for setup of signal handlers */
- /* and signal counters, wait() loop etc. */
+ while (_ecore_signal_count_get()) _ecore_signal_call();
}
/* filter events to remove useless ones etc. ... */
@@ -260,6 +258,7 @@
if (fd_handlers[i].fd > max_fd) max_fd = fd_handlers[i].fd;
}
}
+ if (_ecore_signal_count_get()) return -1;
ret = select(max_fd + 1, &rfds, &wfds, NULL, t);
if (ret < 0)
{
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/Attic/ecore_private.h,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -u -3 -r1.1.2.2 -r1.1.2.3
--- ecore_private.h 13 Jan 2003 00:25:19 -0000 1.1.2.2
+++ ecore_private.h 13 Jan 2003 07:40:13 -0000 1.1.2.3
@@ -91,4 +91,9 @@
int _ecore_event_count_get(void);
Ecore_Event *_ecore_event_get(int num);
void _ecore_event_call(void);
+
+void _ecore_signal_init(void);
+int _ecore_signal_count_get(void);
+void _ecore_signal_call(void);
+
#endif
-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs