ControlProtocolManager::~ControlProtocolManager()
{
- Glib::Threads::Mutex::Lock lm (protocols_lock);
+ Glib::Threads::RWLock::WriterLock lm (protocols_lock);
for (list<ControlProtocol*>::iterator i = control_protocols.begin(); i != control_protocols.end(); ++i) {
delete (*i);
SessionHandlePtr::set_session (s);
if (_session) {
- Glib::Threads::Mutex::Lock lm (protocols_lock);
+ Glib::Threads::RWLock::ReaderLock lm (protocols_lock);
for (list<ControlProtocolInfo*>::iterator i = control_protocol_info.begin(); i != control_protocol_info.end(); ++i) {
if ((*i)->requested || (*i)->mandatory) {
* before the process cycle stops and ports vanish.
*/
- Glib::Threads::Mutex::Lock lm (protocols_lock);
+ Glib::Threads::RWLock::WriterLock lm (protocols_lock);
for (list<ControlProtocol*>::iterator p = control_protocols.begin(); p != control_protocols.end(); ++p) {
delete *p;
cpi.descriptor->destroy (cpi.descriptor, cpi.protocol);
if (lock_required) {
- Glib::Threads::Mutex::Lock lm (protocols_lock);
+ Glib::Threads::RWLock::WriterLock lm (protocols_lock);
list<ControlProtocol*>::iterator p = find (control_protocols.begin(), control_protocols.end(), cpi.protocol);
if (p != control_protocols.end()) {
control_protocols.erase (p);
return;
}
- Glib::Threads::Mutex::Lock lm (protocols_lock);
+ Glib::Threads::RWLock::ReaderLock lm (protocols_lock);
for (list<ControlProtocolInfo*>::iterator i = control_protocol_info.begin(); i != control_protocol_info.end(); ++i) {
if ((*i)->mandatory && ((*i)->protocol == 0)) {
XMLNodeList clist;
XMLNodeConstIterator citer;
- Glib::Threads::Mutex::Lock lm (protocols_lock);
+ Glib::Threads::RWLock::WriterLock lm (protocols_lock);
clist = node.children();
ControlProtocolManager::get_state ()
{
XMLNode* root = new XMLNode (state_node_name);
- Glib::Threads::Mutex::Lock lm (protocols_lock);
+ Glib::Threads::RWLock::ReaderLock lm (protocols_lock);
for (list<ControlProtocolInfo*>::iterator i = control_protocol_info.begin(); i != control_protocol_info.end(); ++i) {
void
ControlProtocolManager::midi_connectivity_established ()
{
- Glib::Threads::Mutex::Lock lm (protocols_lock);
+ Glib::Threads::RWLock::ReaderLock lm (protocols_lock);
for (list<ControlProtocol*>::iterator p = control_protocols.begin(); p != control_protocols.end(); ++p) {
(*p)->midi_connectivity_established ();
void
ControlProtocolManager::register_request_buffer_factories ()
{
- Glib::Threads::Mutex::Lock lm (protocols_lock);
+ Glib::Threads::RWLock::ReaderLock lm (protocols_lock);
for (list<ControlProtocolInfo*>::iterator i = control_protocol_info.begin(); i != control_protocol_info.end(); ++i) {
*/
{
- Glib::Threads::Mutex::Lock lm (protocols_lock);
+ Glib::Threads::RWLock::ReaderLock lm (protocols_lock);
for (list<ControlProtocol*>::iterator p = control_protocols.begin(); p != control_protocols.end(); ++p) {
DEBUG_TRACE (DEBUG::Selection, string_compose ("selection change notification for surface \"%1\"\n", (*p)->name()));