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