
Yes, sure, but what actually does that? i.e. what locks a FD opened by the Haskell runtime and then expects to preserve the lock across a fork? I see that this is a problem in theory, but in practice is it? The point is, how much code would really have to change to fix the fallout from this? On 31/08/15 09:28, David Turner wrote:
Exactly. As I said earlier, if you forget to clear FD_CLOEXEC when you meant to then your program breaks loudly and obviously; if you forget to *set* FD_CLOEXEC then the bug is much quieter and more subtle.
I think the example given by Donn (a lock silently being cleared too early) is a case where it does not break loudly and obviously. I agree with the second part though that bugs related to leaking tend to be quieter and more subtle in general.