summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2016-11-25 16:37:18 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2016-11-25 16:37:18 +0000
commit00e361774a3efbcdcb8f21210bb5ea68441439c9 (patch)
treee74dcbd56a2665d629c6e01343dc409cfbe08ba5 /src
parentb519db32ad4368e024ae413e151411ecd114c2fd (diff)
downloadrspamd-00e361774a3efbcdcb8f21210bb5ea68441439c9.tar.gz
rspamd-00e361774a3efbcdcb8f21210bb5ea68441439c9.zip
[Minor] Return to logical locks for logger
Diffstat (limited to 'src')
-rw-r--r--src/libutil/logger.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/libutil/logger.c b/src/libutil/logger.c
index 34d0a3d7f..c8deb1028 100644
--- a/src/libutil/logger.c
+++ b/src/libutil/logger.c
@@ -85,6 +85,7 @@ struct rspamd_logger_s {
gchar *saved_function;
gchar *saved_module;
gchar *saved_id;
+ rspamd_mempool_mutex_t *mtx;
guint saved_loglevel;
guint64 log_cnt[4];
};
@@ -129,7 +130,11 @@ direct_write_log_line (rspamd_logger_t *rspamd_log,
if (rspamd_log->enabled) {
if (!rspamd_log->no_lock) {
+#ifndef DISABLE_PTHREAD_MUTEX
+ rspamd_mempool_lock_mutex (rspamd_log->mtx);
+#else
rspamd_file_lock (rspamd_log->fd, FALSE);
+#endif
}
if (is_iov) {
@@ -142,7 +147,11 @@ direct_write_log_line (rspamd_logger_t *rspamd_log,
}
if (!rspamd_log->no_lock) {
+#ifndef DISABLE_PTHREAD_MUTEX
+ rspamd_mempool_unlock_mutex (rspamd_log->mtx);
+#else
rspamd_file_unlock (rspamd_log->fd, FALSE);
+#endif
}
if (r == -1) {
@@ -351,6 +360,7 @@ rspamd_set_logger (struct rspamd_config *cfg,
logger->errlog->elts = rspamd_mempool_alloc0_shared (rspamd->server_pool,
sizeof (struct rspamd_logger_error_elt) * cfg->log_error_elts +
cfg->log_error_elt_maxlen * cfg->log_error_elts);
+ logger->mtx = rspamd_mempool_get_mutex (rspamd->server_pool);
}
}
else {