mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-11-14 23:28:43 +00:00
Coroutines: Adapted to new timers and set to pthreads if possible
This commit is contained in:
parent
e907d7cb7d
commit
d3a403636a
@ -16,11 +16,12 @@
|
||||
#include "lib/coroutine.h"
|
||||
#include "lib/resource.h"
|
||||
#include "lib/socket.h"
|
||||
#include "lib/timer.h"
|
||||
#include "sysdep/unix/unix.h"
|
||||
|
||||
#define CORO_STACK_SIZE 65536
|
||||
|
||||
#if 1
|
||||
#if ! USE_PTHREADS
|
||||
|
||||
/*
|
||||
* Implementation of coroutines based on <ucontext.h>
|
||||
@ -170,10 +171,13 @@ static struct resclass coro_class = {
|
||||
.memsize = coro_memsize,
|
||||
};
|
||||
|
||||
extern pthread_key_t current_time_key;
|
||||
|
||||
static void *
|
||||
coro_do_start(void *c_)
|
||||
{
|
||||
coroutine *c = c_;
|
||||
pthread_setspecific(current_time_key, &main_timeloop);
|
||||
while (sem_wait(&c->sem) < 0)
|
||||
;
|
||||
coro_current = c;
|
||||
|
Loading…
Reference in New Issue
Block a user