From 5962a5bb2931566897c3c3194f74bee012d168ba Mon Sep 17 00:00:00 2001 From: Sam Bingner Date: Sun, 14 Jul 2019 13:12:19 -1000 Subject: Fix a race condition with jit for node --- data/nodejs/jit.diff | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'data/nodejs/jit.diff') diff --git a/data/nodejs/jit.diff b/data/nodejs/jit.diff index c64201e39..5c3d78b97 100644 --- a/data/nodejs/jit.diff +++ b/data/nodejs/jit.diff @@ -14,7 +14,7 @@ diff -ur node-v12.3.1/src/node_main.cc node-v12.3.1+JIT/src/node_main.cc #ifdef _WIN32 #include -@@ -93,6 +99,46 @@ +@@ -93,6 +99,50 @@ } // namespace per_process } // namespace node @@ -28,8 +28,12 @@ diff -ur node-v12.3.1/src/node_main.cc node-v12.3.1+JIT/src/node_main.cc + + pid_t pid = fork(); + if (pid) { -+ int st; -+ waitpid(pid, &st, 0); ++ int st,rv,i=0; ++ do { ++ usleep(500); ++ rv = waitpid(pid, &st, 0); ++ } while (rv<0 && i++<10); ++ if (rv<0) fprintf(stderr, "Unable to wait for child?\n"); + } else if (pid == 0) { + pid_t ppid = getppid(); + int rv = ptrace(PT_ATTACHEXC, ppid, 0, 0); @@ -61,7 +65,7 @@ diff -ur node-v12.3.1/src/node_main.cc node-v12.3.1+JIT/src/node_main.cc int main(int argc, char* argv[]) { #if defined(__POSIX__) && defined(NODE_SHARED_MODE) // In node::PlatformInit(), we squash all signal handlers for non-shared lib -@@ -119,6 +165,9 @@ +@@ -119,6 +168,9 @@ } } #endif -- cgit v1.2.3