consolidate semaphore implementation (part three)
authorRobin Gareus <robin@gareus.org>
Wed, 2 Dec 2015 15:09:51 +0000 (16:09 +0100)
committerRobin Gareus <robin@gareus.org>
Wed, 2 Dec 2015 15:09:51 +0000 (16:09 +0100)
libs/pbd/glib_semaphore.cc [deleted file]
libs/pbd/pbd/glib_semaphore.h [deleted file]
libs/pbd/wscript

diff --git a/libs/pbd/glib_semaphore.cc b/libs/pbd/glib_semaphore.cc
deleted file mode 100644 (file)
index 7565e0c..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
-    Copyright (C) 2010 Tim Mayberry
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-*/
-
-#include "pbd/glib_semaphore.h"
-
-namespace PBD {
-
-GlibSemaphore::GlibSemaphore (gint initial_val)
-       :
-               m_counter(initial_val)
-{ }
-
-void
-GlibSemaphore::wait ()
-{
-       Glib::Threads::Mutex::Lock guard (m_mutex);
-
-       while (m_counter.get() < 1) {
-               m_cond.wait(m_mutex);
-       }
-
-       // this shouldn't need to be inside the lock
-       --m_counter;
-}
-
-bool
-GlibSemaphore::try_wait ()
-{
-       if (!m_mutex.trylock())
-       {
-               return false;
-       }
-       // lock successful
-       while (m_counter.get() < 1) {
-               m_cond.wait(m_mutex);
-       }
-
-       // the order of these should not matter
-       --m_counter;
-       m_mutex.unlock();
-       return true;
-}
-
-void
-GlibSemaphore::post ()
-{
-       // atomic, no locking required
-       ++m_counter;
-       m_cond.signal();
-}
-
-} // namespace PBD
diff --git a/libs/pbd/pbd/glib_semaphore.h b/libs/pbd/pbd/glib_semaphore.h
deleted file mode 100644 (file)
index 7f96120..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
-    Copyright (C) 2010 Tim Mayberry
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-*/
-
-#ifndef PBD_GLIB_SEMAPHORE_H
-#define PBD_GLIB_SEMAPHORE_H
-
-#include <glibmm/threads.h>
-
-#include "pbd/libpbd_visibility.h"
-#include "atomic_counter.h"
-
-namespace PBD {
-
-class LIBPBD_API GlibSemaphore
-{
-
-       // prevent copying and assignment
-       GlibSemaphore(const GlibSemaphore& sema);
-       GlibSemaphore& operator= (const GlibSemaphore& sema);
-
-public:
-
-       GlibSemaphore (gint initial_val = 1);
-
-       void wait ();
-
-       bool try_wait ();
-
-       void post ();
-
-private:
-
-       atomic_counter           m_counter;
-       Glib::Threads::Cond      m_cond;
-       Glib::Threads::Mutex     m_mutex;
-
-};
-
-} // namespace PBD
-
-#endif // PBD_SEMAPHORE_H
index 00cc6634eb9e4d3e3aac9987fe74bdc4596482f0..0d520044329e8d4e3c3a4d9cba65e16383040d4b 100644 (file)
@@ -50,7 +50,6 @@ libpbd_sources = [
     'ffs.cc',
     'file_utils.cc',
     'fpu.cc',
-    'glib_semaphore.cc',
     'id.cc',
     'locale_guard.cc',
     'localtime_r.cc',