summaryrefslogtreecommitdiff
path: root/os2/waitpid.c
diff options
context:
space:
mode:
Diffstat (limited to 'os2/waitpid.c')
-rw-r--r--os2/waitpid.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/os2/waitpid.c b/os2/waitpid.c
new file mode 100644
index 0000000..2b64f5d
--- /dev/null
+++ b/os2/waitpid.c
@@ -0,0 +1,36 @@
+/* waitpid.c --- waiting for process termination, under OS/2
+ Karl Fogel <kfogel@cyclic.com> --- November 1995 */
+
+#include <assert.h>
+#include <stdio.h>
+#include <process.h>
+#include <errno.h>
+
+#include "config.h"
+
+/* Wait for the process PID to exit. Put the return status in *statusp.
+ OPTIONS is not supported yet under OS/2. We hope it's always zero. */
+pid_t waitpid (pid, statusp, options)
+ pid_t pid;
+ int *statusp;
+ int options;
+{
+ pid_t rc;
+
+ /* We don't know how to deal with any options yet. */
+ assert (options == 0);
+
+ rc = _cwait (statusp, pid, WAIT_CHILD);
+
+ if (rc == -1)
+ {
+ if (errno == ECHILD)
+ return pid;
+ else
+ return -1;
+ }
+ else if (rc == pid)
+ return pid;
+ else
+ return -1;
+}