--- libelwix/src/pio.c 2013/12/06 00:50:16 1.1.2.7 +++ 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.1.2.7 2013/12/06 00:50:16 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 @@ -12,7 +12,7 @@ terms: All of the documentation and software included in the ELWIX and AITNET Releases is copyrighted by ELWIX - Sofia/Bulgaria -Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 +Copyright 2004 - 2015 by Michael Pounov . All rights reserved. Redistribution and use in source and binary forms, with or without @@ -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) @@ -318,7 +322,7 @@ pio_pchkpid(array_t ** __restrict pids) { register int ret = 0; struct tagPIOPID *p; - array_t *pa; + array_t *pa = NULL; if (pids) { if (!(pa = array_Init(0)))