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