Andrew Paprocki
49e3fcd058
vm: fix race condition in watchdog cleanup
...
Previous code was calling uv_loop_delete() directly on a running loop,
which led to race condition aborts/segfaults within libuv. This change
changes the watchdog thread to call uv_run() with UV_RUN_ONCE so that
the call exits after either the timer times out or uv_async_send() is
called from the main thread in Watchdog::Destroy(). The timer/async
handles are then closed and uv_run() with UV_RUN_DEFAULT is called so
that libuv has a chance to cleanup before the thread exits. The main
thread meanwhile calls uv_thread_join() and then uv_loop_delete() to
complete the cleanup.
2013-05-30 15:57:25 +02:00
..
2013-01-11 22:24:48 +01:00
2013-05-30 00:12:49 +02:00
2013-05-30 00:12:49 +02:00
2013-05-30 00:12:49 +02:00
2013-05-30 00:12:49 +02:00
2013-05-30 00:13:05 +02:00
2013-05-14 13:51:42 -07:00
2012-08-28 15:04:55 +02:00
2013-03-20 01:11:02 +01:00
2012-11-21 01:21:53 +01:00
2013-04-10 16:55:11 +04:00
2013-04-10 16:55:10 +04:00
2013-05-29 23:12:11 +02:00
2013-05-29 23:12:11 +02:00
2013-05-22 20:19:31 -07:00
2013-01-08 05:08:00 +01:00
2013-03-23 19:32:14 +01:00
2013-03-20 01:11:02 +01:00
2013-05-30 00:12:57 +02:00
2013-03-20 01:11:02 +01:00
2013-04-12 11:30:11 -04:00
2013-05-30 00:13:04 +02:00
2013-04-03 09:52:56 -07:00
2013-05-22 16:09:06 -07:00
2013-04-19 15:24:01 +02:00
2013-03-23 19:32:14 +01:00
2013-03-20 01:11:02 +01:00
2013-05-24 15:45:46 -07:00
2013-05-30 15:57:25 +02:00
2013-05-30 15:57:25 +02:00
2013-04-03 09:52:56 -07:00
2013-05-30 00:12:49 +02:00
2013-04-03 09:52:56 -07:00
2013-01-03 23:31:26 +01:00
2012-11-21 01:21:53 +01:00
2013-03-20 01:11:02 +01:00
2013-05-30 00:12:49 +02:00
2013-04-08 16:48:18 +02:00
2013-04-29 23:38:19 +02:00
2013-05-22 20:19:31 -07:00
2012-11-21 01:21:53 +01:00
2013-05-30 00:12:49 +02:00
2013-05-30 00:12:49 +02:00
2013-04-10 23:51:17 +02:00
2013-03-20 01:11:02 +01:00
2013-03-20 01:11:02 +01:00
2013-05-30 00:12:49 +02:00
2013-05-30 00:12:49 +02:00
2013-05-20 14:43:14 -07:00
2013-05-14 13:51:24 -07:00
2013-05-30 00:12:49 +02:00
2013-05-30 00:12:49 +02:00
2012-08-07 01:57:50 +02:00
2013-05-30 00:12:49 +02:00
2013-05-30 00:12:49 +02:00
2013-02-13 16:11:20 +01:00
2013-01-11 18:35:03 +01:00
2013-03-20 01:11:02 +01:00
2012-12-17 17:37:51 +01:00
2013-03-20 01:11:01 +01:00
2013-03-20 01:11:02 +01:00