Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VST3 X11 runloop issues with timers #55

Closed
jpcima opened this issue Apr 26, 2021 · 2 comments
Closed

VST3 X11 runloop issues with timers #55

jpcima opened this issue Apr 26, 2021 · 2 comments

Comments

@jpcima
Copy link
Contributor

jpcima commented Apr 26, 2021

There seems to remain issues in the X11RunLoop component.
Reaper crashes occasionally, with different backtraces, but timers seem often involved somewhat.

This is the deal with X11RunLoop: it's a utility class which serves to implement Timer and FD event handling, which VST3 Linux requires to do at plugin-side.

The one which comes in VST3 SDK is flawed, it's unable to handle unusual edge cases and crashes.
For example, the case when you want to unregister a timer inside a timer callback.

I've made a custom implementation to cover some of these weird cases but it's not yet bulletproof I think.
It used a strategy which puts event handlers in a "zombie" state before clearing them from the vector.

As a wild guess, I think this might have to do with a handler getting re-registered after being unregistered into a zombie, all during the same iteration of event handling.

@paulfd paulfd added the bug label May 24, 2021
@paulfd
Copy link
Member

paulfd commented Jul 16, 2021

I had one bug yes.

@jpcima
Copy link
Contributor Author

jpcima commented Sep 20, 2021

Let's consider it fixed, reopen in case of new problems.

@jpcima jpcima closed this as completed Sep 20, 2021
@redtide redtide transferred this issue from sfztools/sfizz May 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants