[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] Implement open-process and related functions on MinGW
From: |
Mark H Weaver |
Subject: |
Re: [PATCH] Implement open-process and related functions on MinGW |
Date: |
Sat, 22 Feb 2014 23:40:20 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) |
Eli Zaretskii <address@hidden> writes:
>> From: Mark H Weaver <address@hidden>
>> Cc: address@hidden, address@hidden
>> Date: Sat, 22 Feb 2014 17:02:35 -0500
>>
>> Eli Zaretskii <address@hidden> writes:
>>
>> >> From: Mark H Weaver <address@hidden>
>> >> Cc: address@hidden (Ludovic Courtès), address@hidden
>> >> Date: Sat, 22 Feb 2014 10:54:16 -0500
>> >>
>> >> Thanks for working on this, but in a multithreaded program, it's no good
>> >> to change the file descriptors in the main program temporarily before
>> >> spawning, and then restore them afterwards. We'll have to find another
>> >> way of doing this.
>> >
>> > Btw, how does the Posix build work reliably when it forks after
>> > several threads are already running? I don't see any calls to
>> > pthread_atfork or any similar machinery in place. What am I missing?
>>
>> It's safe to fork a multithreaded program without using pthread_atfork
>> if only async-signal-safe functions are called before the exec.
>
> You may know what your code does between fork and exec, but you don't
> know what other parts do, like pthreads or the application that called
> Guile as a library.
I'm not sure I understand what you mean here. The relevant code here is
between line 1366 (/* The child. */) and the call to execvp on line
1408. I see calls to 'close', 'open', 'dup', and 'dup2'.
How could "pthreads" or "the application that called Guile" cause
anything else to happen between fork and exec in the new single-thread
child process?
Mark
- Re: [PATCH] Implement open-process and related functions on MinGW, (continued)
- Re: [PATCH] Implement open-process and related functions on MinGW, Mark H Weaver, 2014/02/24
- Re: [PATCH] Implement open-process and related functions on MinGW, Eli Zaretskii, 2014/02/24
- Re: [PATCH] Implement open-process and related functions on MinGW, Mark H Weaver, 2014/02/28
- Re: [PATCH] Implement open-process and related functions on MinGW, Eli Zaretskii, 2014/02/28
- Re: [PATCH] Implement open-process and related functions on MinGW, Mark H Weaver, 2014/02/28
- Re: [PATCH] Implement open-process and related functions on MinGW, Eli Zaretskii, 2014/02/28
- Re: [PATCH] Implement open-process and related functions on MinGW, Eli Zaretskii, 2014/02/24
- Re: [PATCH] Implement open-process and related functions on MinGW, Eli Zaretskii, 2014/02/22
- Re: [PATCH] Implement open-process and related functions on MinGW, Mark H Weaver, 2014/02/22
- Re: [PATCH] Implement open-process and related functions on MinGW, Eli Zaretskii, 2014/02/22
- Re: [PATCH] Implement open-process and related functions on MinGW,
Mark H Weaver <=
- Re: [PATCH] Implement open-process and related functions on MinGW, Eli Zaretskii, 2014/02/23
- Re: [PATCH] Implement open-process and related functions on MinGW, Mark H Weaver, 2014/02/23
- Re: MinGW patches, Eli Zaretskii, 2014/02/22
- Re: MinGW patches, Neil Jerram, 2014/02/22
- Re: MinGW patches, Eli Zaretskii, 2014/02/22
- Re: MinGW patches, Eli Zaretskii, 2014/02/22
- Re: MinGW patches, Mark H Weaver, 2014/02/22
- Re: MinGW patches, Eli Zaretskii, 2014/02/22
- Re: MinGW patches, Mark H Weaver, 2014/02/23
- Re: MinGW patches, Eli Zaretskii, 2014/02/23