#914: Don't use fork()
| Reporter: | Erik Schnetter |
| Status: | resolved |
| Milestone: | |
| Version: | |
| Type: | enhancement |
| Priority: | minor |
| Component: | EinsteinToolkit thorn |
Changes (by Roland Haas):
| status: | resolved (was new) |
It seems that it is in many cases not safe to call fork() in MPI applications. This page http://www.open-mpi.de/faq/?category=openfabrics#ofa-fork has some information. The upshot seems to be: - In many (most) cases, one can call system() or popen() to execute external processes while waiting for them. - It is generally not safe to call fork() to execute a certain task in the background. However, it should be possible to use threads in this case.
Keyword:
Comment (by Roland Haas):
There is no more (active) code in the ET that uses fork(). The only places where fork() still shows up in C code is Formaline (where it is disabled by default and PTHREADS is used instead) and OpenCLRunTime (where it is commented out altogether).
In both cases there is a comment "Don't use fork, MPI may not like it".
I believe this discussion only ticket can be closed.
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/914/dont-use-fork