From 52708c73c2b8cc8f7d1631131caf3c9aa258c4b1 Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Thu, 20 Jul 2017 11:56:07 +0200 Subject: [PATCH] Revert "Give back control to maestro as late as possible." This reverts commit c7829c256a041aae9a60454263de30188b3f2fcc. Tests are failing on Travis, and build faild on Appveyor :-( --- include/xbt/xbt_os_thread.h | 2 -- src/kernel/context/ContextThread.cpp | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/include/xbt/xbt_os_thread.h b/include/xbt/xbt_os_thread.h index e73022d140..fa4c014184 100644 --- a/include/xbt/xbt_os_thread.h +++ b/include/xbt/xbt_os_thread.h @@ -31,8 +31,6 @@ typedef struct xbt_os_thread_ *xbt_os_thread_t; XBT_PUBLIC(xbt_os_thread_t) xbt_os_thread_create(const char *name, pvoid_f_pvoid_t start_routine, void *param, void *data); XBT_PUBLIC(void) xbt_os_thread_exit(int *retcode); XBT_PUBLIC(void) xbt_os_thread_detach(xbt_os_thread_t thread); -#define xbt_os_thread_cleanup_push(routine, arg) pthread_cleanup_push(routine, arg) -#define xbt_os_thread_cleanup_pop(execute) pthread_cleanup_pop(execute) XBT_PUBLIC(xbt_os_thread_t) xbt_os_thread_self(void); XBT_PUBLIC(const char *) xbt_os_thread_self_name(void); diff --git a/src/kernel/context/ContextThread.cpp b/src/kernel/context/ContextThread.cpp index 012fbcc7ce..85ac35a62a 100644 --- a/src/kernel/context/ContextThread.cpp +++ b/src/kernel/context/ContextThread.cpp @@ -200,9 +200,9 @@ void ThreadContext::stop() xbt_os_sem_release(smx_ctx_thread_sem); // Signal to the maestro that it has finished: - xbt_os_thread_cleanup_push((void (*)(void*))xbt_os_sem_release, this->end_); + xbt_os_sem_release(this->end_); + xbt_os_thread_exit(nullptr); - xbt_os_thread_cleanup_pop(0); } void ThreadContext::suspend() -- 2.20.1