{"push_id":2761860535,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"f6ee88841e56472d7765b48ee668fcc7957ccf54","before":"95d1d275beee5213618f48ae0225251f648b6d1f","commits":[{"sha":"f6ee88841e56472d7765b48ee668fcc7957ccf54","author":{"name":"Eric Bluestein","email":"d5da3b3a8b2eec9e44a77aa1bc5b86071bb1768a@fb.com"},"message":"HHVM Debugger: Fix hang in debugger extension shutdown\n\nSummary:\nThis fixes a race preventing the debugger extension from shutting down cleanly.\n\nThe session cleanup thread deletes sessions in an async job because the session thread can be blocked running user code (its the HPHP request backing the console REPL). It therefore can block indefinitely if the user has called into a native method or has an infinite loop etc, and so we can't wait to join to it on the thread that needs to communicate with the debugger client.\n\nIf this thread is cleaning up sessions due to the client disconnecting, and the extension shutdown thread signals m_sessionCleanupCondition before the cleanup thread re-acquires the lock, we can erroneously go to sleep again because we're failing to re-check m_sessionCleanupTerminating after re-acquiring the lock but before sleeping on the condition variable.\n\nReviewed By: alexeyt\n\nDifferential Revision: D9038429\n\nfbshipit-source-id: 67fe04876b0f4845cb5ff9418d301cf192ddcc75","distinct":true,"url":"https://api.github.com/repos/facebook/hhvm/commits/f6ee88841e56472d7765b48ee668fcc7957ccf54"}]}
{"actor":{"display_login":"hhvm-bot"}}