passing synclog and scheduler as parameter to synccore
diff --git a/src/event-scheduler.cpp b/src/event-scheduler.cpp
index f4603f0..ec4b104 100644
--- a/src/event-scheduler.cpp
+++ b/src/event-scheduler.cpp
@@ -168,23 +168,24 @@
 void
 Scheduler::start()
 {
+  WriteLock lock(m_mutex);
+  if (!m_running)
   {
-    WriteLock lock(m_mutex);
+    m_thread = boost::thread(&Scheduler::eventLoop, this);
     m_running = true;
   }
-  m_thread = boost::thread(&Scheduler::eventLoop, this);
 }
 
 void
 Scheduler::shutdown()
 {
+  WriteLock lock(m_mutex);
+  if (m_running)
   {
-    WriteLock lock(m_mutex);
+    event_base_loopbreak(m_base);
+    m_thread.join();
     m_running = false;
   }
-  event_base_loopbreak(m_base);
-  cout << "shutdown, calling loop break" << endl;
-  m_thread.join();
 }
 
 bool