Skip to content

Hang on midi_out::close_port after sending a long message. #218

Description

@TrevorCash

When my application exits - I call m_midiOutput->close_port(); in the main thread.

If I recently sent a large message on the port, then I get a hang on alsa_data::unsubscribe

libc.so.6!__GI___ioctl(int fd, unsigned long request) (ioctl.c:36)
libasound.so.2![Unknown/Just-In-Time compiled code] (Unknown Source:0)
libremidi::alsa_seq::alsa_data::unsubscribe(struct libremidi::alsa_seq::alsa_data * const this) (/home/almov/repos/ShopManager/build/Debug/_deps/libremidi-src/include/libremidi/backends/alsa_seq/helpers.hpp:331)
libremidi::alsa_seq::midi_out_impl::close_port(class libremidi::alsa_seq::midi_out_impl * const this) (/home/almov/repos/ShopManager/build/Debug/_deps/libremidi-src/include/libremidi/backends/alsa_seq/midi_out.hpp:109)
libremidi::midi_out::close_port(const class libremidi::midi_out * const this) (/home/almov/repos/ShopManager/build/Debug/_deps/libremidi-src/include/libremidi/midi_out.cpp:179)
Control16Window::Control16WindowImpl::uninitialize(class Control16Window::Control16WindowImpl * const this) (/home/almov/repos/ShopManager/src/control16_window.cpp:192)
Control16Window::DeInitialize(class Control16Window * const this) (/home/almov/repos/ShopManager/src/control16_window.cpp:483)
InterfaceManager::deInitialize(class InterfaceManager * const this) (/home/almov/repos/ShopManager/src/primary.cpp:54)
main(int argc, char ** argv) (/home/almov/repos/ShopManager/main.cpp:124)

Any Ideas what can cause a hang in this function? I am trying to cleanly release the ports.

Thanks,
-Trevor

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions