--- libelwix/src/pio.c 2015/06/25 17:53:50 1.4 +++ libelwix/src/pio.c 2019/12/30 18:11:16 1.6 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: pio.c,v 1.4 2015/06/25 17:53:50 misho Exp $ +* $Id: pio.c,v 1.6 2019/12/30 18:11:16 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -49,12 +49,16 @@ SUCH DAMAGE. extern char **environ; pio_pid_t pio_pidlist = SLIST_HEAD_INITIALIZER(pio_pidlist); +#ifdef HAVE_LIBPTHREAD static pthread_mutex_t pidlist_mutex = PTHREAD_MUTEX_INITIALIZER; -#define THREAD_LOCK() if (__isthreaded) pthread_mutex_lock(&pidlist_mutex) -#define THREAD_UNLOCK() if (__isthreaded) pthread_mutex_unlock(&pidlist_mutex) +#define THREAD_LOCK() pthread_mutex_lock(&pidlist_mutex) +#define THREAD_UNLOCK() pthread_mutex_unlock(&pidlist_mutex) +#else +#define THREAD_LOCK() +#define THREAD_UNLOCK() +#endif - /* * e_popen() - ELWIX replacement of standard popen * @@ -231,7 +235,7 @@ e_pclose(int iop) #endif { struct tagPIOPID *cur, *last = NULL; - int pstat; + int pstat = 0; pid_t pid; if (!iop)