diff --git a/src/mod/event_handlers/mod_cdr_csv/mod_cdr_csv.c b/src/mod/event_handlers/mod_cdr_csv/mod_cdr_csv.c index 4d3deca02a..c57123b265 100644 --- a/src/mod/event_handlers/mod_cdr_csv/mod_cdr_csv.c +++ b/src/mod/event_handlers/mod_cdr_csv/mod_cdr_csv.c @@ -146,7 +146,7 @@ static void write_cdr(const char *path, const char *log_line) } if ((bytes_in = write(fd->fd, log_line, bytes_out)) != bytes_out) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Write error to file %s\n", path); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Write error to file %s %d/%d\n", path, (int)bytes_in, (int)bytes_out); } fd->bytes += bytes_in; switch_mutex_unlock(fd->mutex); @@ -337,7 +337,9 @@ static void event_handler(switch_event_t *event) for (hi = switch_hash_first(NULL, globals.fd_hash); hi; hi = switch_hash_next(hi)) { switch_hash_this(hi, NULL, NULL, &val); fd = (cdr_fd_t *) val; + switch_mutex_lock(fd->mutex); do_rotate(fd); + switch_mutex_unlock(fd->mutex); } } }