mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-07 03:50:11 +02:00
Fix missing detached flag in Process::Handle moves
This is why C++'s move semantics are footguns. The result of this was that grouped plugins would no longer be detached when they were moved (in this case, into the group connect handler closure). Which in turn caused those plugins to block until the plugin host process terminated, which thus ended up blocking the host indefinitely.
This commit is contained in:
@@ -10,6 +10,10 @@ Versioning](https://semver.org/spec/v2.0.0.html).
|
|||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
|
- Fixed a regression from yabridge 4.0.0 where plugin groups would not exit
|
||||||
|
correctly. When removing a plugin instance that was part of a plugin group, it
|
||||||
|
would block until the group host process had exited, causing the host to
|
||||||
|
stall.
|
||||||
- Configuring the Meson build now works correctly on Wine 8.0 final. Meson's
|
- Configuring the Meson build now works correctly on Wine 8.0 final. Meson's
|
||||||
version comparison function considers `8.0` to be a lower version than
|
version comparison function considers `8.0` to be a lower version than
|
||||||
`8.0rc2`.
|
`8.0rc2`.
|
||||||
|
|||||||
@@ -194,13 +194,15 @@ Process::Handle::~Handle() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Process::Handle::Handle(Handle&& o) noexcept : pid_(o.pid_) {
|
Process::Handle::Handle(Handle&& o) noexcept
|
||||||
|
: detached_(o.detached_), pid_(o.pid_) {
|
||||||
o.detached_ = true;
|
o.detached_ = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Process::Handle& Process::Handle::operator=(Handle&& o) noexcept {
|
Process::Handle& Process::Handle::operator=(Handle&& o) noexcept {
|
||||||
o.detached_ = true;
|
o.detached_ = true;
|
||||||
|
|
||||||
|
detached_ = o.detached_;
|
||||||
pid_ = o.pid_;
|
pid_ = o.pid_;
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
|
|||||||
Reference in New Issue
Block a user