From 0539e2d4f42dbf0016e9a12381a78205e1a8230c Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga Date: Thu, 24 Dec 1998 19:03:42 +0000 Subject: [PATCH] Use fork1() instead of fork(). May reduce problems under Solaris THR. --- servers/slapd/back-shell/fork.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/servers/slapd/back-shell/fork.c b/servers/slapd/back-shell/fork.c index 13f099b331..2c2f9b72f8 100644 --- a/servers/slapd/back-shell/fork.c +++ b/servers/slapd/back-shell/fork.c @@ -32,8 +32,20 @@ forkandexec( * parent *rfp <- c2p[0] | c2p[1] <- stdout child */ - switch ( (pid = fork()) ) { +#ifdef HAVE_THR + switch ( (pid = fork1()) ) +#else + switch ( (pid = fork()) ) +#endif + { case 0: /* child */ + /* + * child could deadlock here due to resources locked + * by our parent + * + * If so, configure --without-threads or implement forking + * via a surrogate parent. + */ close( p2c[1] ); close( c2p[0] ); if ( dup2( p2c[0], 0 ) == -1 || dup2( c2p[1], 1 ) == -1 ) { -- 2.39.5