aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/msgpack_rpc
diff options
context:
space:
mode:
authorThiago de Arruda <tpadilha84@gmail.com>2015-09-01 09:56:40 -0300
committerThiago de Arruda <tpadilha84@gmail.com>2015-09-06 09:18:52 -0300
commit2a0ff9f5cf0064576fc295aa5bfb895cbc77896a (patch)
tree2302c0d49265522977bf780b5ee140db6c21a0bc /src/nvim/msgpack_rpc
parent9ec240e03fb81f9d9476cf413556ede2c8a6092b (diff)
downloadrneovim-2a0ff9f5cf0064576fc295aa5bfb895cbc77896a.tar.gz
rneovim-2a0ff9f5cf0064576fc295aa5bfb895cbc77896a.tar.bz2
rneovim-2a0ff9f5cf0064576fc295aa5bfb895cbc77896a.zip
log: Make logging thread-safe
Diffstat (limited to 'src/nvim/msgpack_rpc')
-rw-r--r--src/nvim/msgpack_rpc/channel.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/nvim/msgpack_rpc/channel.c b/src/nvim/msgpack_rpc/channel.c
index 45e78d6e79..34ff7c6374 100644
--- a/src/nvim/msgpack_rpc/channel.c
+++ b/src/nvim/msgpack_rpc/channel.c
@@ -825,6 +825,7 @@ static void log_server_msg(uint64_t channel_id,
msgpack_unpack_next(&unpacked, packed->data, packed->size, NULL);
uint64_t type = unpacked.data.via.array.ptr[0].via.u64;
DLOGN("[msgpack-rpc] nvim -> client(%" PRIu64 ") ", channel_id);
+ log_lock();
FILE *f = open_log_file();
fprintf(f, type ? (type == 1 ? RES : NOT) : REQ);
log_msg_close(f, unpacked.data);
@@ -836,6 +837,7 @@ static void log_client_msg(uint64_t channel_id,
msgpack_object msg)
{
DLOGN("[msgpack-rpc] client(%" PRIu64 ") -> nvim ", channel_id);
+ log_lock();
FILE *f = open_log_file();
fprintf(f, is_request ? REQ : RES);
log_msg_close(f, msg);
@@ -847,6 +849,7 @@ static void log_msg_close(FILE *f, msgpack_object msg)
fputc('\n', f);
fflush(f);
fclose(f);
+ log_unlock();
}
#endif