aboutsummaryrefslogtreecommitdiff
path: root/src/lib9/wait.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2004-12-27 19:11:21 +0000
committerrsc <devnull@localhost>2004-12-27 19:11:21 +0000
commit03417610742c4a67bb0345a8fa0fb4e13dee07f7 (patch)
tree31748ebfba51d8966a0f64a9742dd6f141ab43a9 /src/lib9/wait.c
parent955a2ca78d7efc2787864e38a3d902df16fc2541 (diff)
downloadplan9port-03417610742c4a67bb0345a8fa0fb4e13dee07f7.tar.gz
plan9port-03417610742c4a67bb0345a8fa0fb4e13dee07f7.tar.bz2
plan9port-03417610742c4a67bb0345a8fa0fb4e13dee07f7.zip
add awaitfor and waitfor
Diffstat (limited to 'src/lib9/wait.c')
-rw-r--r--src/lib9/wait.c23
1 files changed, 17 insertions, 6 deletions
diff --git a/src/lib9/wait.c b/src/lib9/wait.c
index 856f85c0..31d8c02a 100644
--- a/src/lib9/wait.c
+++ b/src/lib9/wait.c
@@ -2,13 +2,12 @@
#include <libc.h>
static Waitmsg*
-_wait(int nohang)
+_wait(int n, char *buf)
{
- int n, l;
- char buf[512], *fld[5];
+ int l;
+ char *fld[5];
Waitmsg *w;
- n = (nohang ? awaitnohang : await)(buf, sizeof buf-1);
if(n <= 0)
return nil;
buf[n] = '\0';
@@ -32,12 +31,24 @@ _wait(int nohang)
Waitmsg*
wait(void)
{
- return _wait(0);
+ char buf[256];
+
+ return _wait(await(buf, sizeof buf-1), buf);
}
Waitmsg*
waitnohang(void)
{
- return _wait(1);
+ char buf[256];
+
+ return _wait(awaitnohang(buf, sizeof buf-1), buf);
+}
+
+Waitmsg*
+waitfor(int pid)
+{
+ char buf[256];
+
+ return _wait(awaitfor(pid, buf, sizeof buf-1), buf);
}