mirror of
https://gitlab.labs.nic.cz/labs/bird.git
synced 2024-05-11 16:54:54 +00:00
Event lists rewritten to a single linked list
In multithreaded environment, we need to pass messages between workers. This is done by queuing events to their respective queues. The double-linked list is not really useful for that as it needs locking everywhere. This commit rewrites the event subsystem to use a single-linked list where events are enqueued by a single atomic instruction and the queue is processed after atomically moving the whole queue aside.
This commit is contained in:
@@ -14,12 +14,12 @@
|
||||
#include "lib/event.h"
|
||||
#include "lib/socket.h"
|
||||
|
||||
extern struct birdloop main_birdloop;
|
||||
|
||||
void sk_start(sock *s);
|
||||
void sk_stop(sock *s);
|
||||
void sk_reloop(sock *s, struct birdloop *loop);
|
||||
|
||||
extern struct birdloop main_birdloop;
|
||||
|
||||
/* Start a new birdloop owned by given pool and domain */
|
||||
struct birdloop *birdloop_new(pool *p, uint order, const char *name);
|
||||
|
||||
|
Reference in New Issue
Block a user