#include <roken.h> /* Must come after procmgmt.h */
#ifdef AFS_PTHREAD_ENV
#include <opr/softsig.h>
- #include <afs/procmgmt_softsig.h> /* Must come after softsig.h */
#endif
#include <afs/opr.h>
#include "afsutil.h"
#if defined(AFS_PTHREAD_ENV)
static void
+LockServerLog(void)
+{
+ LOCK_SERVERLOG();
+}
+
+static void
+UnlockServerLog(void)
+{
+ UNLOCK_SERVERLOG();
+}
+
+static void
InitServerLogMutex(void)
{
opr_Verify(pthread_mutex_init(&serverLogMutex, NULL) == 0);
+# ifndef AFS_NT40_ENV
+ opr_Verify(pthread_atfork(LockServerLog, UnlockServerLog, UnlockServerLog) == 0);
+# endif
}
#endif /* AFS_PTHREAD_ENV */
RedirectStdStreams(fileName);
/* Save our name for reopening. */
- free(ourName);
- ourName = strdup(fileName);
- opr_Assert(ourName != NULL);
+ if (ourName != fileName) {
+ /* Make a copy if needed */
+ free(ourName);
+ ourName = strdup(fileName);
+ opr_Assert(ourName != NULL);
+ }
serverLogFD = tempfd;