Wayland : Fix multithreading bug + fix segfault in libdubs on certain systems. #156
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes two issues I had encountered with
xcap
.xcap
, taking more than one screenshoot at a time would cause XCapError("Screenshot failed or canceled").This was caused by dbus messages getting lost when multiple threads interacted with dbus.
This seems like a multi-threading bug, probably caused either by improper
dbus
usage.This PR fixes this issue, by ensuring no more than 2 threads can take a screenshot at any given time, using a
Mutex
.I have also included a test, which demonstrates the original bug, and allows for checking if it has returned.
libdbus
.For unclear reasons(I am still trying to figure them out with the maintainer of the
dbus
crate), using thevendored
feature ofdbus
causes crashes(segfaults) on certain systems.As a workaround, this PR turns the
vendored
feature off, to allowxcap
to work reliably on all systems.