-
Notifications
You must be signed in to change notification settings - Fork 25
Fix unload/refresh virtual devices deadlock #189
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
Fix unload/refresh virtual devices deadlock #189
Conversation
SiMet
commented
Nov 3, 2025
- Three unit tests created
- Created new method runJobOnExecutorAndWait in ControllerImpl to run job on executor and wait for compleation using marker job
- replace flush in deregisterVirtualControlledEntity and refreshEntity with runJobOnExecutorAndWait
c27d1c7 to
d3cbd31
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same
|
|
||
| } | ||
|
|
||
| TEST(ControllerEntity, PushJobToExecutorWhileUnloadVirtualEntities) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same comments
d3cbd31 to
c7214c4
Compare
|
|
||
| private: | ||
| la::avdecc::ExecutorManager::ExecutorWrapper* _executor; | ||
| la::avdecc::ExecutorManager::ExecutorWrapper* _executor = nullptr; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Always use brace initialization (see CODING_STYLE_GUIDELINES)
| public: | ||
| JobPusherObserver(la::avdecc::ExecutorManager::ExecutorWrapper* executor) | ||
| : _executor(executor) | ||
| : la::avdecc::controller::Controller::DefaultedObserver() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not needed
| JobPusherObserver(la::avdecc::ExecutorManager::ExecutorWrapper* executor) | ||
| : _executor(executor) | ||
| : la::avdecc::controller::Controller::DefaultedObserver() | ||
| , _executor(executor) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use brace initialization
fd8ee12 to
c089aaa
Compare
| public: | ||
| JobPusherObserver(la::avdecc::ExecutorManager::ExecutorWrapper* executor) | ||
| : _executor(executor) | ||
| : _executor({ executor }) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I meant "only" brace initialization, like for class members :)
| [this]() | ||
| []() | ||
| { | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This new line just appeared. Good thing anyway, please add a very small comment:
// Empty, just to force a job in the queue
And do the same for the other empty job. Thanks
c089aaa to
ce305d7
Compare
ce305d7 to
6227e9c
Compare
|


