static ast_mutex_t msglist_lock = AST_MUTEX_INITIALIZER;
static ast_mutex_t loglock = AST_MUTEX_INITIALIZER;
+static int pending_logger_reload = 0;
static struct msglist {
char *msg;
FILE *myf;
int x;
-
ast_mutex_lock(&loglock);
if (eventlog)
fclose(eventlog);
} else
ast_log(LOG_ERROR, "Unable to create event log: %s\n", strerror(errno));
init_logger_chain();
+ pending_logger_reload = 0;
return -1;
}
logger_rotate_help };
static int handle_SIGXFSZ(int sig) {
- reload_logger(1);
- ast_log(LOG_EVENT,"Rotated Logs Per SIGXFSZ\n");
- if (option_verbose)
- ast_verbose("Rotated Logs Per SIGXFSZ\n");
+ /* Indicate need to reload */
+ pending_logger_reload = 1;
return 0;
}
ast_mutex_unlock(&loglock);
/* end critical section */
+ if (pending_logger_reload) {
+ reload_logger(1);
+ ast_log(LOG_EVENT,"Rotated Logs Per SIGXFSZ\n");
+ if (option_verbose)
+ ast_verbose("Rotated Logs Per SIGXFSZ\n");
+ }
}
extern void ast_verbose(const char *fmt, ...)