On Mon, Mar 19, 2012, Erez D wrote about "Re: what happens if": > my reason for fork is only for exec() - to protect the first program from > the other.
Then you should be all fine. > the problem that may arise in forking a multithreaded is that one thread > may lock a mutex and then another call for fork, which means that the child > inherits the locked mutex. > i do not know internaly what library function use this mutex, e.g. will > close() need this mutex ? will dup() will ? in this case, trying to close a > side of a pipe, duping it or even closing open fds (for security issues) > may hang the child while the library waits for the mutex , and no other > thread exists in the child to release it If you're talking about the C language, you won't have any of these problems. System calls like close() or dup() do not use any pthread capabilities like mutexes. If you're talking about a different programming language, I frankly have no idea what its fork() does. Maybe you need to write some C code that does fork()/exec() in one function call, and avoid this risk. Did actually notice any problem with your code, or is this question just theoretical? -- Nadav Har'El | Monday, Mar 19 2012, [email protected] |----------------------------------------- Phone +972-523-790466, ICQ 13349191 |If God had intended us to be vegetarians, http://nadav.harel.org.il |He wouldn't have made animals out of meat _______________________________________________ Linux-il mailing list [email protected] http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
