From 88dba7b16befee11dda590e0670bf9d0e35c1d6d Mon Sep 17 00:00:00 2001
From: Per Hedbor <ph@opera.com>
Date: Sat, 6 Sep 1997 00:17:22 +0200
Subject: [PATCH] Fork now sets num_threads to 1

Rev: src/modules/files/efuns.c:1.35
---
 src/modules/files/efuns.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/modules/files/efuns.c b/src/modules/files/efuns.c
index 055fb90cfa..66c0fff91c 100644
--- a/src/modules/files/efuns.c
+++ b/src/modules/files/efuns.c
@@ -509,12 +509,20 @@ void f_getcwd(INT32 args)
 
 void f_fork(INT32 args)
 {
+  int res;
   do_set_close_on_exec();
   pop_n_elems(args);
 #if defined(HAVE_FORK1) && defined(_REENTRANT)
-  push_int(fork1());
+  push_int(res=fork1());
 #else
-  push_int(fork());
+  push_int(res=fork());
+#endif
+#if defined(_REENTRANT)
+  if(!res)
+  {
+    /* forked copy. there is now only one thread running, this one. */
+    num_threads=1;
+  }
 #endif
 }
 
@@ -604,7 +612,6 @@ void f_exece(INT32 args)
   my_set_close_on_exec(2,0);
 
   do_set_close_on_exec();
-
   execve(argv[0],argv,env);
 
   free((char *)argv);
-- 
GitLab