Ben Noordhuis
134a60c785
src: fix race condition in debug signal on exit
...
Before this commit, sending a SIGUSR1 at program exit could trigger a
hard to reproduce race condition where `v8::Debug::DebugBreak(isolate)`
got called when the isolate was in the process of being torn down.
A similar race condition is in theory possible when sending signals
to two threads simultaneously but I haven't been able to reproduce
that myself (and I tried, oh how I tried.)
This commit fixes the race condition by turning `node_isolate` into
a `std::atomic` and using it as an ad hoc synchronization primitive
in places where that is necessary.
A bare minimum std::atomic polyfill is added for OS X because Apple
wouldn't be Apple if things just worked out of the box.
PR-URL: https://github.com/nodejs/node/pull/3528
Reviewed-By: Fedor Indutny <fedor@indutny.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2015-10-29 13:16:32 +11:00
..
2015-10-01 11:50:51 +01:00
2015-10-07 13:27:46 -06:00
2015-10-07 13:27:46 -06:00
2015-10-07 13:27:46 -06:00
2015-10-29 13:16:32 +11:00
2015-05-28 21:48:44 +02:00
2015-05-28 21:48:44 +02:00
2015-10-01 13:56:25 -06:00
2015-06-16 23:26:29 +09:00
2015-09-06 21:38:05 +10:00
2015-02-11 23:06:29 +01:00
2015-10-07 13:27:46 -06:00
2015-08-26 12:45:16 -07:00
2015-10-27 09:01:02 +11:00
2015-09-17 15:25:14 -05:00
2015-09-06 21:38:05 +10:00
2015-09-06 21:38:05 +10:00
2015-10-08 11:38:21 -06:00
2015-09-06 21:38:05 +10:00
2015-10-25 21:25:51 -04:00
2015-09-06 21:38:05 +10:00
2015-10-27 09:01:01 +11:00
2015-09-06 21:38:05 +10:00
2015-10-20 23:14:01 -04:00
2015-09-06 21:38:05 +10:00
2015-09-06 21:38:05 +10:00
2015-09-17 15:25:14 -05:00
2015-03-18 20:06:20 +01:00
2015-01-12 15:30:28 -08:00
2015-01-13 01:59:30 +01:00
2015-01-12 15:30:28 -08:00
2015-01-12 15:30:28 -08:00
2015-10-27 09:01:02 +11:00
2015-10-27 09:01:02 +11:00
2015-09-06 21:38:05 +10:00
2015-09-06 21:38:05 +10:00
2015-10-08 19:25:47 +02:00
2015-09-06 21:38:05 +10:00
2015-10-14 12:16:18 -04:00
2015-09-06 21:38:05 +10:00
2015-01-12 15:30:28 -08:00
2015-06-02 21:44:18 +02:00
2015-09-16 12:48:25 -06:00
2015-09-06 21:38:05 +10:00
2015-09-06 21:38:05 +10:00
2015-10-20 23:14:01 -04:00
2015-02-09 18:06:57 +01:00
2015-09-06 21:38:05 +10:00
2015-09-06 21:38:05 +10:00
2015-01-12 15:30:28 -08:00
2015-09-06 21:38:05 +10:00
2015-09-06 21:38:05 +10:00
2015-02-02 21:55:56 +01:00
2015-06-02 19:28:14 +02:00
2015-09-06 21:38:05 +10:00
2015-09-06 21:38:05 +10:00
2015-10-06 16:19:55 -05:00
2015-09-06 21:38:05 +10:00
2015-10-20 23:14:01 -04:00
2015-10-20 23:14:01 -04:00
2015-10-20 23:14:01 -04:00
2015-02-03 22:37:42 +11:00
2015-01-12 15:30:28 -08:00
2015-02-02 21:55:56 +01:00
2015-01-12 15:30:28 -08:00
2015-01-12 15:30:28 -08:00
2015-08-20 01:14:37 -07:00
2015-10-20 23:13:58 -04:00
2015-10-29 13:16:32 +11:00
2012-02-03 14:07:32 +00:00
2015-09-06 21:38:05 +10:00
2015-10-22 13:57:28 -04:00
2015-02-02 21:55:56 +01:00
2015-02-09 18:06:57 +01:00
2015-02-02 21:55:56 +01:00
2012-11-21 01:21:53 +01:00
2015-10-01 13:54:44 -06:00
2015-09-06 21:38:05 +10:00
2015-09-06 21:38:05 +10:00
2015-09-06 21:38:05 +10:00
2015-09-06 21:38:05 +10:00
2015-09-06 21:38:05 +10:00
2015-09-17 15:25:14 -05:00
2015-09-06 21:38:05 +10:00
2015-09-06 21:38:05 +10:00
2015-10-06 07:02:20 +11:00
2015-09-06 21:38:05 +10:00
2015-10-06 07:02:21 +11:00
2015-09-06 21:38:05 +10:00
2015-09-06 21:38:05 +10:00
2015-09-06 21:38:05 +10:00
2015-10-07 21:09:53 -07:00
2015-10-07 21:09:53 -07:00
2015-10-01 13:54:44 -06:00
2015-09-06 21:38:05 +10:00
2015-09-06 21:38:05 +10:00
2015-09-17 15:25:14 -05:00
2015-09-06 21:38:05 +10:00
2012-08-07 01:57:50 +02:00
2015-09-17 15:25:14 -05:00
2015-09-06 21:38:05 +10:00
2015-10-01 13:54:44 -06:00
2015-09-06 21:38:05 +10:00
2015-08-04 11:56:14 -07:00
2015-09-06 21:38:05 +10:00
2015-09-25 14:25:21 +02:00
2015-09-06 21:38:05 +10:00
2015-02-03 19:25:31 +03:00
2013-10-09 08:49:39 -07:00