summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-12-02 16:09:51 +0100
committerRobin Gareus <robin@gareus.org>2015-12-02 16:09:51 +0100
commit15c958e32fe65cee077672439c1c51d071c853e8 (patch)
treec56a2ff585d3364a04fd1f601ef3bd7306c9d459 /libs
parentf5278f60d3e58f9f7680fae18c442b4d7862c4ae (diff)
consolidate semaphore implementation (part three)
Diffstat (limited to 'libs')
-rw-r--r--libs/pbd/glib_semaphore.cc68
-rw-r--r--libs/pbd/pbd/glib_semaphore.h57
-rw-r--r--libs/pbd/wscript1
3 files changed, 0 insertions, 126 deletions
diff --git a/libs/pbd/glib_semaphore.cc b/libs/pbd/glib_semaphore.cc
deleted file mode 100644
index 7565e0c069..0000000000
--- a/libs/pbd/glib_semaphore.cc
+++ /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
index 7f96120d7d..0000000000
--- a/libs/pbd/pbd/glib_semaphore.h
+++ /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
diff --git a/libs/pbd/wscript b/libs/pbd/wscript
index 00cc6634eb..0d52004432 100644
--- a/libs/pbd/wscript
+++ b/libs/pbd/wscript
@@ -50,7 +50,6 @@ libpbd_sources = [
'ffs.cc',
'file_utils.cc',
'fpu.cc',
- 'glib_semaphore.cc',
'id.cc',
'locale_guard.cc',
'localtime_r.cc',