Prevent a deadlock in plugin group handling

This was a nasty race condition that only seemed to pop up with Spitfire
plugins in REAPER, but it could also happen elsewhere. The
`active_plugins_mutex` was getting locked from the message loop, but the
plugin would block until `effOpen()` had been called. But because the
mutex was locked by the message loop we would never get to handling
`effOpen()`. Passing the pointer directly both removes this unnecessary
locking and fixes the issue.
This commit is contained in:
Robbert van der Helm
2020-12-12 12:44:01 +01:00
parent 33cb5f1efe
commit 712736e74a
3 changed files with 29 additions and 24 deletions
+9
View File
@@ -6,6 +6,15 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic
Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Fixed
- Fixed some plugins, notably the _Spitfire Audio_ plugins, from causing a
deadlock when using plugin groups in _REAPER_. Even though this did not seem
to cause any issues in other hosts, the race condition that caused this issue
could also occur elsewhere.
## [2.2.0] - 2020-12-11
### Added