Skip to content

Regression: Callback_handler not run as a infinite loop, tempo changes not tracked #14

@tbazin

Description

@tbazin

static void callback_handler() {
std::lock_guard<std::mutex> sl(bbb_mutex());
while(!bbb_tempo_queue().empty()) {
auto &&front = bbb_tempo_queue().front();

The callback_handler function should be run as an infinite loop. This was previously handled by libuv:

uv_async_init(uv_default_loop(), &async(), bbb_async_cb_handler);
but has not been replaced after the removal of libuv.

In the absence of such a loop, the callback_handler thread stops after a single run through the different update piles and stops listening to further changes thereafter.

I managed to fixed the issue by enclosing the part after the mutex request into a simple while (true) {... loop, but I'm not 100% certain that this would be the appropriate way of doing things since I actually have no experience whatsoever with C++ 😄 If this approach seems alright though, I'd be happy to submit this very simple PR.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions