aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/event
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2025-03-08 12:28:15 -0800
committerGitHub <noreply@github.com>2025-03-08 12:28:15 -0800
commit05b9daa1e6e8d045f691b74441ebbc01f69a56aa (patch)
tree366eae4b7cdb23e6b9af60da4606b97fce6ff5c1 /src/nvim/event
parentd5ff0aff27438829b0810cc70dec9e63cb53c1db (diff)
downloadrneovim-05b9daa1e6e8d045f691b74441ebbc01f69a56aa.tar.gz
rneovim-05b9daa1e6e8d045f691b74441ebbc01f69a56aa.tar.bz2
rneovim-05b9daa1e6e8d045f691b74441ebbc01f69a56aa.zip
refactor(multiqueue): rename multiqueue_new_parent #32767
Diffstat (limited to 'src/nvim/event')
-rw-r--r--src/nvim/event/loop.c4
-rw-r--r--src/nvim/event/multiqueue.c18
2 files changed, 12 insertions, 10 deletions
diff --git a/src/nvim/event/loop.c b/src/nvim/event/loop.c
index f8b149ec78..050419b8e9 100644
--- a/src/nvim/event/loop.c
+++ b/src/nvim/event/loop.c
@@ -21,9 +21,9 @@ void loop_init(Loop *loop, void *data)
loop->closing = false;
loop->uv.data = loop;
kv_init(loop->children);
- loop->events = multiqueue_new_parent(loop_on_put, loop);
+ loop->events = multiqueue_new(loop_on_put, loop);
loop->fast_events = multiqueue_new_child(loop->events);
- loop->thread_events = multiqueue_new_parent(NULL, NULL);
+ loop->thread_events = multiqueue_new(NULL, NULL);
uv_mutex_init(&loop->mutex);
uv_async_init(&loop->uv, &loop->async, async_cb);
uv_signal_init(&loop->uv, &loop->children_watcher);
diff --git a/src/nvim/event/multiqueue.c b/src/nvim/event/multiqueue.c
index 5072bd774d..859051e594 100644
--- a/src/nvim/event/multiqueue.c
+++ b/src/nvim/event/multiqueue.c
@@ -67,7 +67,7 @@ struct multiqueue_item {
struct multiqueue {
MultiQueue *parent;
QUEUE headtail; // circularly-linked
- PutCallback put_cb;
+ PutCallback on_put; // Called on the parent (if any) when an item is enqueued in a child.
void *data;
size_t size;
};
@@ -84,26 +84,28 @@ typedef struct {
static Event NILEVENT = { .handler = NULL, .argv = { NULL } };
-MultiQueue *multiqueue_new_parent(PutCallback put_cb, void *data)
+/// Creates a new root (parentless) queue, which may gain child queues via `multiqueue_new_child`.
+MultiQueue *multiqueue_new(PutCallback on_put, void *data)
{
- return multiqueue_new(NULL, put_cb, data);
+ return _multiqueue_new(NULL, on_put, data);
}
+/// Creates a new queue as a child of a `parent` queue.
MultiQueue *multiqueue_new_child(MultiQueue *parent)
FUNC_ATTR_NONNULL_ALL
{
assert(!parent->parent); // parent cannot have a parent, more like a "root"
parent->size++;
- return multiqueue_new(parent, NULL, NULL);
+ return _multiqueue_new(parent, NULL, NULL);
}
-static MultiQueue *multiqueue_new(MultiQueue *parent, PutCallback put_cb, void *data)
+static MultiQueue *_multiqueue_new(MultiQueue *parent, PutCallback on_put, void *data)
{
MultiQueue *rv = xmalloc(sizeof(MultiQueue));
QUEUE_INIT(&rv->headtail);
rv->size = 0;
rv->parent = parent;
- rv->put_cb = put_cb;
+ rv->on_put = on_put;
rv->data = data;
return rv;
}
@@ -135,8 +137,8 @@ void multiqueue_put_event(MultiQueue *self, Event event)
{
assert(self);
multiqueue_push(self, event);
- if (self->parent && self->parent->put_cb) {
- self->parent->put_cb(self->parent, self->parent->data);
+ if (self->parent && self->parent->on_put) {
+ self->parent->on_put(self->parent, self->parent->data);
}
}