summaryrefslogtreecommitdiffstats
path: root/raul/Slave.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-08-16 00:59:35 +0000
committerDavid Robillard <d@drobilla.net>2012-08-16 00:59:35 +0000
commit2f719c364449f3e338822e7cc740daac0870cbc9 (patch)
tree349be87a97baf7a48d5c42fc45c1ed5fa006c225 /raul/Slave.hpp
parentadbad7fcffe9fab239da23b846091e88586b3846 (diff)
downloadraul-2f719c364449f3e338822e7cc740daac0870cbc9.tar.gz
raul-2f719c364449f3e338822e7cc740daac0870cbc9.tar.bz2
raul-2f719c364449f3e338822e7cc740daac0870cbc9.zip
Remove Raul::Slave class.
Merge Thread::stop() and Thread::join(). Clean thread shut down without the use of pthread_cancel(). git-svn-id: http://svn.drobilla.net/lad/trunk/raul@4708 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'raul/Slave.hpp')
-rw-r--r--raul/Slave.hpp62
1 files changed, 0 insertions, 62 deletions
diff --git a/raul/Slave.hpp b/raul/Slave.hpp
deleted file mode 100644
index 593d5e2..0000000
--- a/raul/Slave.hpp
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- This file is part of Raul.
- Copyright 2007-2012 David Robillard <http://drobilla.net>
-
- Raul 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 3 of the License, or any later version.
-
- Raul 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 Raul. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef RAUL_SLAVE_HPP
-#define RAUL_SLAVE_HPP
-
-#include "raul/Semaphore.hpp"
-#include "raul/Thread.hpp"
-
-namespace Raul {
-
-/** Thread driven by (realtime safe) signals.
- *
- * Use this to perform some task in a separate thread you want to 'drive'
- * from a realtime (or otherwise) thread.
- *
- * \ingroup raul
- */
-class Slave : public Thread
-{
-public:
- explicit Slave(const std::string& name="") : Thread(name), _whip(0) {}
-
- /** Tell the slave to do whatever work it does. Realtime safe. */
- inline void whip() { _whip.post(); }
-
-protected:
- /** Worker method.
- *
- * This is called once from this thread every time whip() is called.
- * Implementations likely want to put a single (non loop) chunk of code
- * here, e.g. to process an event.
- */
- virtual void _whipped() = 0;
-
- Semaphore _whip;
-
-private:
- inline void _run() {
- while (true) {
- _whip.wait();
- _whipped();
- }
- }
-};
-
-} // namespace Raul
-
-#endif // RAUL_SLAVE_HPP