13
0

JACK backend: fix race condition caused by not wrapping jack_set_property() in JACK_SERVER_CALL

This commit is contained in:
Paul Davis 2024-07-08 22:40:21 -06:00
parent 7052f57ee9
commit 249442fe99

View File

@ -178,10 +178,10 @@ int
JACKAudioBackend::set_port_property (PortHandle port, const std::string& key, const std::string& value, const std::string& type) JACKAudioBackend::set_port_property (PortHandle port, const std::string& key, const std::string& value, const std::string& type)
{ {
#ifdef HAVE_JACK_METADATA // really everyone ought to have this by now. #ifdef HAVE_JACK_METADATA // really everyone ought to have this by now.
int rv = -1; int rv;
jack_client_t* client = _jack_connection->jack(); jack_client_t* client = _jack_connection->jack();
jack_uuid_t uuid = jack_port_uuid (std::dynamic_pointer_cast<JackPort>(port)->jack_ptr); jack_uuid_t uuid = jack_port_uuid (std::dynamic_pointer_cast<JackPort>(port)->jack_ptr);
return jack_set_property(client, uuid, key.c_str(), value.c_str(), type.c_str()); JACK_SERVER_CALL (rv = jack_set_property(client, uuid, key.c_str(), value.c_str(), type.c_str()));
return rv; return rv;
#else #else
return -1; return -1;