This change improves stability of the runtime when the application forks child processes.
Acquiring/releasing kmp_initz_lock and kmp_forkjoin_lock in the atfork handlers insures that the actual fork does not occur while those two locks are held, and __kmp_itt_reset() reverts the itt's global state to the initial state which also initializes the mutex stored in the global state.
Some missing initialization code was also inserted in the child's atfork handler.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM