On Mon, Mar 19, 2012 at 12:20 PM, Nadav Har'El <[email protected]>wrote:
> 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. > i will be using C++. are you sure this is safe ? > > Did actually notice any problem with your code, or is this question > just theoretical? > 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
