mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
log: some DEBUG-level stream logging
This commit is contained in:
parent
8d1ccb606d
commit
e006b1d98d
@ -233,8 +233,7 @@ void process_stop(Process *proc) FUNC_ATTR_NONNULL_ALL
|
|||||||
switch (proc->type) {
|
switch (proc->type) {
|
||||||
case kProcessTypeUv:
|
case kProcessTypeUv:
|
||||||
// Close the process's stdin. If the process doesn't close its own
|
// Close the process's stdin. If the process doesn't close its own
|
||||||
// stdout/stderr, they will be closed when it exits(possibly due to being
|
// stdout/stderr, they will be closed when it exits (voluntarily or not).
|
||||||
// terminated after a timeout)
|
|
||||||
process_close_in(proc);
|
process_close_in(proc);
|
||||||
ILOG("Sending SIGTERM to pid %d", proc->pid);
|
ILOG("Sending SIGTERM to pid %d", proc->pid);
|
||||||
uv_kill(proc->pid, SIGTERM);
|
uv_kill(proc->pid, SIGTERM);
|
||||||
|
@ -118,7 +118,7 @@ static void read_cb(uv_stream_t *uvstream, ssize_t cnt, const uv_buf_t *buf)
|
|||||||
// to `alloc_cb` will return the same unused pointer(`rbuffer_produced`
|
// to `alloc_cb` will return the same unused pointer(`rbuffer_produced`
|
||||||
// won't be called)
|
// won't be called)
|
||||||
&& cnt != 0) {
|
&& cnt != 0) {
|
||||||
DLOG("Closing Stream (%p): %s (%s)", stream,
|
DLOG("closing Stream: %p: %s (%s)", stream,
|
||||||
uv_err_name((int)cnt), os_strerror((int)cnt));
|
uv_err_name((int)cnt), os_strerror((int)cnt));
|
||||||
// Read error or EOF, either way stop the stream and invoke the callback
|
// Read error or EOF, either way stop the stream and invoke the callback
|
||||||
// with eof == true
|
// with eof == true
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
#include <uv.h>
|
#include <uv.h>
|
||||||
|
|
||||||
|
#include "nvim/log.h"
|
||||||
#include "nvim/rbuffer.h"
|
#include "nvim/rbuffer.h"
|
||||||
#include "nvim/macros.h"
|
#include "nvim/macros.h"
|
||||||
#include "nvim/event/stream.h"
|
#include "nvim/event/stream.h"
|
||||||
@ -81,6 +82,7 @@ void stream_close(Stream *stream, stream_close_cb on_stream_close, void *data)
|
|||||||
FUNC_ATTR_NONNULL_ARG(1)
|
FUNC_ATTR_NONNULL_ARG(1)
|
||||||
{
|
{
|
||||||
assert(!stream->closed);
|
assert(!stream->closed);
|
||||||
|
DLOG("closing Stream: %p", stream);
|
||||||
stream->closed = true;
|
stream->closed = true;
|
||||||
stream->close_cb = on_stream_close;
|
stream->close_cb = on_stream_close;
|
||||||
stream->close_cb_data = data;
|
stream->close_cb_data = data;
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
#include <uv.h>
|
#include <uv.h>
|
||||||
|
|
||||||
|
#include "nvim/log.h"
|
||||||
#include "nvim/event/loop.h"
|
#include "nvim/event/loop.h"
|
||||||
#include "nvim/event/wstream.h"
|
#include "nvim/event/wstream.h"
|
||||||
#include "nvim/vim.h"
|
#include "nvim/vim.h"
|
||||||
|
@ -133,6 +133,9 @@ uint64_t channel_from_process(Process *proc, uint64_t id, char *source)
|
|||||||
rstream_init(proc->out, 0);
|
rstream_init(proc->out, 0);
|
||||||
rstream_start(proc->out, receive_msgpack, channel);
|
rstream_start(proc->out, receive_msgpack, channel);
|
||||||
|
|
||||||
|
DLOG("ch %" PRIu64 " in-stream=%p out-stream=%p", channel->id, proc->in,
|
||||||
|
proc->out);
|
||||||
|
|
||||||
return channel->id;
|
return channel->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -150,6 +153,8 @@ void channel_from_connection(SocketWatcher *watcher)
|
|||||||
wstream_init(&channel->data.stream, 0);
|
wstream_init(&channel->data.stream, 0);
|
||||||
rstream_init(&channel->data.stream, CHANNEL_BUFFER_SIZE);
|
rstream_init(&channel->data.stream, CHANNEL_BUFFER_SIZE);
|
||||||
rstream_start(&channel->data.stream, receive_msgpack, channel);
|
rstream_start(&channel->data.stream, receive_msgpack, channel);
|
||||||
|
|
||||||
|
DLOG("ch %" PRIu64 " in/out-stream=%p", &channel->data.stream);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @param source description of source function, rplugin name, TCP addr, etc
|
/// @param source description of source function, rplugin name, TCP addr, etc
|
||||||
@ -344,6 +349,9 @@ void channel_from_stdio(void)
|
|||||||
rstream_start(&channel->data.std.in, receive_msgpack, channel);
|
rstream_start(&channel->data.std.in, receive_msgpack, channel);
|
||||||
// write stream
|
// write stream
|
||||||
wstream_init_fd(&main_loop, &channel->data.std.out, 1, 0);
|
wstream_init_fd(&main_loop, &channel->data.std.out, 1, 0);
|
||||||
|
|
||||||
|
DLOG("ch %" PRIu64 " in-stream=%p out-stream=%p", channel->id,
|
||||||
|
&channel->data.std.in, &channel->data.std.out);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Creates a loopback channel. This is used to avoid deadlock
|
/// Creates a loopback channel. This is used to avoid deadlock
|
||||||
@ -363,6 +371,7 @@ void channel_process_exit(uint64_t id, int status)
|
|||||||
decref(channel);
|
decref(channel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// rstream.c:read_event() invokes this as stream->read_cb().
|
||||||
static void receive_msgpack(Stream *stream, RBuffer *rbuf, size_t c,
|
static void receive_msgpack(Stream *stream, RBuffer *rbuf, size_t c,
|
||||||
void *data, bool eof)
|
void *data, bool eof)
|
||||||
{
|
{
|
||||||
@ -379,7 +388,8 @@ static void receive_msgpack(Stream *stream, RBuffer *rbuf, size_t c,
|
|||||||
}
|
}
|
||||||
|
|
||||||
size_t count = rbuffer_size(rbuf);
|
size_t count = rbuffer_size(rbuf);
|
||||||
DLOG("parsing %u bytes of msgpack data from Stream(%p)", count, stream);
|
DLOG("ch %" PRIu64 ": parsing %u bytes from msgpack Stream: %p",
|
||||||
|
channel->id, count, stream);
|
||||||
|
|
||||||
// Feed the unpacker with data
|
// Feed the unpacker with data
|
||||||
msgpack_unpacker_reserve_buffer(channel->unpacker, count);
|
msgpack_unpacker_reserve_buffer(channel->unpacker, count);
|
||||||
@ -565,8 +575,8 @@ static bool channel_write(Channel *channel, WBuffer *buffer)
|
|||||||
char buf[256];
|
char buf[256];
|
||||||
snprintf(buf,
|
snprintf(buf,
|
||||||
sizeof(buf),
|
sizeof(buf),
|
||||||
"Before returning from a RPC call, ch %" PRIu64 " was "
|
"ch %" PRIu64 ": stream write failed. "
|
||||||
"closed due to a failed write",
|
"RPC canceled; closing channel",
|
||||||
channel->id);
|
channel->id);
|
||||||
call_set_error(channel, buf, ERROR_LOG_LEVEL);
|
call_set_error(channel, buf, ERROR_LOG_LEVEL);
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#include "nvim/log.h"
|
||||||
#include "nvim/vim.h"
|
#include "nvim/vim.h"
|
||||||
#include "nvim/ascii.h"
|
#include "nvim/ascii.h"
|
||||||
#include "nvim/normal.h"
|
#include "nvim/normal.h"
|
||||||
|
Loading…
Reference in New Issue
Block a user