From c971c489dc8318ca4e92e9ba40d739dc4ee50982 Mon Sep 17 00:00:00 2001 From: Patrik Nyblom Date: Wed, 2 Mar 2011 14:23:22 +0100 Subject: Remove race in main thread stealing due to reading and writing to pipe from same thread --- erts/emulator/beam/erl_drv_thread.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'erts/emulator/beam/erl_drv_thread.c') diff --git a/erts/emulator/beam/erl_drv_thread.c b/erts/emulator/beam/erl_drv_thread.c index 08a35387f2..39bbe9633b 100644 --- a/erts/emulator/beam/erl_drv_thread.c +++ b/erts/emulator/beam/erl_drv_thread.c @@ -698,6 +698,7 @@ erl_drv_thread_join(ErlDrvTid tid, void **respp) #if defined(__DARWIN__) && defined(USE_THREADS) && defined(ERTS_SMP) extern int erts_darwin_main_thread_pipe[2]; +extern int erts_darwin_main_thread_result_pipe[2]; int @@ -709,7 +710,7 @@ erl_drv_stolen_main_thread_join(ErlDrvTid tid, void **respp) x = &dummy; else x = respp; - read(erts_darwin_main_thread_pipe[0],x,sizeof(void *)); + read(erts_darwin_main_thread_result_pipe[0],x,sizeof(void *)); return 0; } -- cgit v1.2.3