{"push_id":847103362,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"d0f5b70311920f764e7a1c015bd0aad2b57cd2b3","before":"fb4785d83a52ac7e19479ab441adb0a78d90a735","commits":[{"sha":"d0f5b70311920f764e7a1c015bd0aad2b57cd2b3","author":{"email":"5bf845f84322d1d056075615785d184196202fa2@gmail.com","name":"ChengYi He"},"message":"fix child process hits mutex deadlock in exit after fork\n\nIf one thread of parent process is locking a\nglobal object's mutex which is required in the\nobject's destructor. Then, the child process after\nfork will hit deadlock if it calls exit which\nrequire releaes all global objects. Fix this by\ndirectly calling _exit.\n\nLog of running this program:\n$ adb shell /data/exit-deadlock-after-fork\n13191:13191, exit-deadlock-after-fork starts\n13191:13193, void* thread_routine(void*) calls mObj.lock()\n13191:13191, parent process after fork\n13194:13191, child process after fork\n13194:13191, is ready to _exit(1)\n13191:13191, child pid 13194 exited with status 1\n13191:13191, exit-deadlock-after-fork ends","distinct":true,"url":"https://api.github.com/repos/chengyihe/exit-deadlock-after-fork/commits/d0f5b70311920f764e7a1c015bd0aad2b57cd2b3"}]}