diff options
author | David Robillard <d@drobilla.net> | 2007-10-05 19:41:24 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2007-10-05 19:41:24 +0000 |
commit | 9fe19152570b6388fc518bda6ccd422d14cff37a (patch) | |
tree | a29a7632dc3b43f439a558907b150a5a85740746 /src/libs/engine/OSCEngineReceiver.hpp | |
parent | 9d8f4248b0686b165c6ad0a4f6d653f4bf9cae3b (diff) | |
download | ingen-9fe19152570b6388fc518bda6ccd422d14cff37a.tar.gz ingen-9fe19152570b6388fc518bda6ccd422d14cff37a.tar.bz2 ingen-9fe19152570b6388fc518bda6ccd422d14cff37a.zip |
Fix OSC receiving thread chewing CPU (xrun problem on single core systems).
git-svn-id: http://svn.drobilla.net/lad/ingen@827 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/engine/OSCEngineReceiver.hpp')
-rw-r--r-- | src/libs/engine/OSCEngineReceiver.hpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/libs/engine/OSCEngineReceiver.hpp b/src/libs/engine/OSCEngineReceiver.hpp index d46bc7c3..c4f86b8c 100644 --- a/src/libs/engine/OSCEngineReceiver.hpp +++ b/src/libs/engine/OSCEngineReceiver.hpp @@ -69,7 +69,16 @@ public: void deactivate(); private: - virtual void _run(); + struct ReceiveThread : public Raul::Thread { + ReceiveThread(OSCEngineReceiver& receiver) : _receiver(receiver) {} + virtual void _run(); + private: + OSCEngineReceiver& _receiver; + }; + + friend class ReceiveThread; + + ReceiveThread* _receive_thread; static void error_cb(int num, const char* msg, const char* path); static int set_response_address_cb(LO_HANDLER_ARGS, void* myself); |