From c46aadf52dd240fb930c6dca22aed322fb036b6f Mon Sep 17 00:00:00 2001 From: Kelvin Sherlock Date: Fri, 11 May 2018 09:15:56 -0400 Subject: [PATCH] fixes. --- darlene.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/darlene.c b/darlene.c index 22013a0..d69204d 100644 --- a/darlene.c +++ b/darlene.c @@ -122,19 +122,21 @@ forkpty2(int *amaster, char *name, struct sgttyb *sg, struct winsize *winp) { ok = openpty2(&master, &slave, name, sg, winp); if (ok < 0) return -1; - pid = fork2(_child, 256, 0, NULL, 4, master, slave); + pid = fork2(_child, 512, 0, "darlene child", 2, master, slave); if (pid < 0) { close(master); close(slave); return -1; } + *amaster = master; close(slave); return pid; } #pragma databank 1 static void sigchild(int sig, int x) { - PostEvent(app4Mask,0); + //display_cstr("\r\nsigchild\r\n"); + PostEvent(app4Evt,0); } #pragma databank 0 @@ -217,7 +219,8 @@ int main(int argc, char **argv) { for(;;) { static char buffer[1024]; int fio = 0; - ioctl(master, FIONREAD, &fio); + int ok; + ok = ioctl(master, FIONREAD, &fio); if (fio > sizeof(buffer)) fio = sizeof(buffer); if (fio > 0) { fio = read(master, buffer, fio); @@ -260,10 +263,9 @@ int main(int argc, char **argv) { } } - if (event.what == app4Mask) { + if (event.what == app4Evt) { /* child signal received! */ union wait wt; - int ok; ok = waitpid(pid, &wt, WNOHANG); if (ok <= 0) continue; display_cstr("\r\nChild exited.\r\n");