mirror of
https://git.proxmox.com/git/mirror_corosync
synced 2025-07-25 09:13:26 +00:00
Patch to reinitialize logsys internal variables after a fork for correct
operation. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1519 fd59a12c-fef9-0310-b244-a6a79926bd2f
This commit is contained in:
parent
443a74e5b5
commit
2074e8df56
@ -175,7 +175,7 @@ objdb.lcrso: objdb.o
|
||||
endif
|
||||
|
||||
aisexec: $(EXEC_OBJS) $(EXEC_LIBS)
|
||||
$(CC) $(LDFLAGS) $(EXEC_OBJS) $(EXEC_LIBS) -o aisexec
|
||||
$(CC) $(EXEC_OBJS) $(EXEC_LIBS) -o aisexec $(LDFLAGS)
|
||||
|
||||
libtotem_pg.a: $(TOTEM_OBJS)
|
||||
$(AR) -rc libtotem_pg.a $(TOTEM_OBJS)
|
||||
|
@ -255,7 +255,8 @@ static void log_printf_worker_fn (void *thread_data, void *work_item)
|
||||
{
|
||||
struct log_data *log_data = (struct log_data *)work_item;
|
||||
|
||||
pthread_mutex_lock (&logsys_config_mutex);
|
||||
if (logsys_wthread_active)
|
||||
pthread_mutex_lock (&logsys_config_mutex);
|
||||
/*
|
||||
* Output the log data
|
||||
*/
|
||||
@ -273,7 +274,8 @@ static void log_printf_worker_fn (void *thread_data, void *work_item)
|
||||
&log_data->log_string[log_data->syslog_pos]);
|
||||
}
|
||||
free (log_data->log_string);
|
||||
pthread_mutex_unlock (&logsys_config_mutex);
|
||||
if (logsys_wthread_active)
|
||||
pthread_mutex_unlock (&logsys_config_mutex);
|
||||
}
|
||||
|
||||
static void _log_printf (
|
||||
@ -467,6 +469,14 @@ void logsys_config_priority_set (unsigned int priority)
|
||||
pthread_mutex_unlock (&logsys_new_log_mutex);
|
||||
}
|
||||
|
||||
static void child_cleanup (void)
|
||||
{
|
||||
memset(&log_thread_group, 0, sizeof(log_thread_group));
|
||||
logsys_wthread_active = 0;
|
||||
pthread_mutex_init(&logsys_config_mutex, NULL);
|
||||
pthread_mutex_init(&logsys_new_log_mutex, NULL);
|
||||
}
|
||||
|
||||
int _logsys_wthread_create (void)
|
||||
{
|
||||
worker_thread_group_init (
|
||||
@ -481,6 +491,7 @@ int _logsys_wthread_create (void)
|
||||
logsys_flush();
|
||||
|
||||
atexit (logsys_atexit);
|
||||
pthread_atfork(NULL, NULL, child_cleanup);
|
||||
|
||||
if (logsys_mode & LOG_MODE_OUTPUT_SYSLOG_THREADED && logsys_name != NULL) {
|
||||
openlog (logsys_name, LOG_CONS|LOG_PID, logsys_facility);
|
||||
|
@ -161,13 +161,13 @@ openais-cfgtool: openais-cfgtool.o $(LIBRARIES)
|
||||
$(CC) $(LDFLAGS) -o openais-cfgtool openais-cfgtool.o $(LIBS)
|
||||
|
||||
logsys_s: logsys_s.o logsys_s1.o logsys_s2.o ../exec/liblogsys.a
|
||||
$(CC) $(LDFLAGS) -o logsys_s logsys_s.o logsys_s1.o logsys_s2.o ../exec/liblogsys.a
|
||||
$(CC) -o logsys_s logsys_s.o logsys_s1.o logsys_s2.o ../exec/liblogsys.a $(LDFLAGS)
|
||||
|
||||
logsys_t1: logsys_t1.o ../exec/liblogsys.a
|
||||
$(CC) $(LDFLAGS) -o logsys_t1 logsys_t1.o ../exec/liblogsys.a
|
||||
$(CC) -o logsys_t1 logsys_t1.o ../exec/liblogsys.a $(LDFLAGS)
|
||||
|
||||
logsys_t2: logsys_t2.o ../exec/liblogsys.a
|
||||
$(CC) $(LDFLAGS) -o logsys_t2 logsys_t2.o ../exec/liblogsys.a
|
||||
$(CC) -o logsys_t2 logsys_t2.o ../exec/liblogsys.a $(LDFLAGS)
|
||||
|
||||
clean:
|
||||
rm -f *.o $(LIBRARIES) $(BINARIES)
|
||||
|
Loading…
Reference in New Issue
Block a user