From: Jan Maria Matejka Date: Tue, 28 Aug 2018 11:12:25 +0000 (+0200) Subject: Coroutines: Adapted to new timers and set to pthreads if possible X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d3a403636a152d56dd11b075cca21c3d7a04b58e;p=thirdparty%2Fbird.git Coroutines: Adapted to new timers and set to pthreads if possible --- diff --git a/sysdep/unix/coroutine.c b/sysdep/unix/coroutine.c index 5e986a7ca..c5a2ba739 100644 --- a/sysdep/unix/coroutine.c +++ b/sysdep/unix/coroutine.c @@ -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 @@ -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;