Ah, I think I see the issue. When you close a device the m_pInputStream and m_pOutputStreams are not NULL'd so we are pointing to free'd memory. If it goes like:
uncheck activate -> PortMidiController::close() -> m_pInputStream is now pointing to invalid memory
poll timer activates -> ControllerManager -> PortMidiController::poll() -> Pm_Poll with a freed input stream -> segfault
Added a potential fix in lp:mixxx/1.11 r3450. Sean -- can you try it and confirm?
Ah, I think I see the issue. When you close a device the m_pInputStream and m_pOutputStreams are not NULL'd so we are pointing to free'd memory. If it goes like:
uncheck activate -> PortMidiControl ler::close( ) -> m_pInputStream is now pointing to invalid memory ler::poll( ) -> Pm_Poll with a freed input stream -> segfault
poll timer activates -> ControllerManager -> PortMidiControl
Added a potential fix in lp:mixxx/1.11 r3450. Sean -- can you try it and confirm?