core+main: switch to std::thread and thread_local
Change-Id: I892eb7d87639c2b0d24a8ed457b9d32635269216
diff --git a/core/scheduler.cpp b/core/scheduler.cpp
index 094c188..68f7c75 100644
--- a/core/scheduler.cpp
+++ b/core/scheduler.cpp
@@ -26,20 +26,17 @@
#include "scheduler.hpp"
#include "global-io.hpp"
-#include <boost/thread/tss.hpp>
-
namespace nfd {
namespace scheduler {
-static boost::thread_specific_ptr<Scheduler> g_scheduler;
+static thread_local unique_ptr<Scheduler> g_scheduler;
Scheduler&
getGlobalScheduler()
{
- if (g_scheduler.get() == nullptr) {
- g_scheduler.reset(new Scheduler(getGlobalIoService()));
+ if (g_scheduler == nullptr) {
+ g_scheduler = make_unique<Scheduler>(getGlobalIoService());
}
-
return *g_scheduler;
}
@@ -49,11 +46,13 @@
return getGlobalScheduler().scheduleEvent(after, event);
}
+#ifdef WITH_TESTS
void
resetGlobalScheduler()
{
g_scheduler.reset();
}
+#endif
} // namespace scheduler
} // namespace nfd