Re: Glib.IO.add_watch HUP signal issues on Mac OS X
Olivier Andrieu <[email protected]> Mon, 25 Nov 2013 10:45:07 +0100
| Newsgroups | gmane.comp.lang.ocaml.lib.gtk |
|---|---|
| Message-ID | <CAD5gH1G4AdD5fFC_G4J_E_+6WUhWb3cCN-aVD1ovFbmeRQYuvg@mail.gmail.com> |
--001a1134d7d219170404ebfd38e6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hi, On Thu, Nov 14, 2013 at 12:40 AM, Piotr Esden-Tempski <[email protected]> wro= te: > Hi everyone, > > I am trying to debug an issue on Mac OS X. I tried to describe as much as= I could with a bunch of examples here: https://github.com/paparazzi/papara= zzi/issues/290 > > TLDR: When watching a pipe connected to a child process, Linux machines s= end a IO_HUP signal when the child exits. On Darwin this is not happening. = The alternative used to be to wait for the OUT signal instead that. Since 1= 0.8 the OUT signal is arriving immediately when a process starts, which bre= aks the kludgy fix. > > I bet that waiting for the OUT signal was a kludge in the first place. It= was surprising that it was working in the first place, but it did the job. yeah, I'm not surprised, it was bound to break eventually :-/ > Now my questions. > > 1) Did anyone of you guys encounter this problem too? (Maybe I am just mi= ssing something very obvious.) > > 2) If there is no way of fixing this in lablgtk or glib and it actually i= s a bug in Darwin itself, what alternatives would you guys propose? During = my research I found the child_watch_add function in glib. From my understan= ding this would be a perfect candidate to replace the way and purpose we ar= e using add_watch for currently. But as far as I can tell it is not availab= le through lablgtk2 bindings. So let me know if there is another way of asy= nchronously monitoring child processes. Yes, child_watch_add is exactly what you need ... and it turns out I needed it too, a couple years ago ! I had written the bindings for the g_spawn_* functions and g_child_watch_add. I cant remember why I didn't integrate them in LablGTK though. Here's the code, I'll see if I can integrate it in the current LablGTK. Cheers, --=20 Olivier --001a1134d7d219170404ebfd38e6 Content-Type: application/x-gzip; name="gspawn.tar.gz" Content-Disposition: attachment; filename="gspawn.tar.gz" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hofj1tib0 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 67Zu67Zu63bv9n/N8kk/AFAAAA== --001a1134d7d219170404ebfd38e6 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Lablgtk-list mailing list [email protected] https://lists.ocamlcore.org/cgi-bin/listinfo/lablgtk-list --001a1134d7d219170404ebfd38e6--