File operations in base and fork+exec

Edward Kmett ekmett at gmail.com
Fri Jun 23 12:41:17 UTC 2017


I'd like to jump on the "this has bitten me before" bandwagon. +1

-Edward

On Fri, Jun 23, 2017 at 1:49 PM, Bardur Arantsson <spam at scientician.net>
wrote:

> On 2017-06-23 10:46, Merijn Verstraaten wrote:
> > Hi!
> >
> > So I realise proposing backwards incompatible changes to base is tilting
> at windmills, but I just noticed that most (all?) file operations in base
> don't open files with O_CLOEXEC, which basically means that every open
> Handle/file descriptor gets leaked to every single subprocess you fork+exec
> from Haskell. This seems highly undesirable. For POSIX there appears to be
> an operation in base that disables this, but it doesn't seem to easily
> exported.
> >
> > I would like to propose that all operations in base open files with
> O_CLOEXEC by default and exposing an easy method to mark specific file
> descriptors to be preserved across exec (This can be achieved by using
> fcntl to remove the CLOEXEC bit from a specific fd).
> >
> > I'm not sure to what extent Windows behaviour is similar to POSIX, but
> in principle it should behave the same, I think.
> >
>
> +1. Current behavior is suboptimal for *almost* every use case and also
> highly surprising.
>
> Regards,
>
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20170623/6c3784d3/attachment.html>


More information about the Libraries mailing list