Странно. Сегодня попался компьютер (на i3), на котором программа для pci7841 весело зависает намертво вместе с системой при завершении программы по сигналу или при вызове функции Init повторно. Ни на одном другом компьютере такого не было никогда! В попытках понять, что происходит, удалось обнаружить, что зависание возникает при вызове функции StopThread. Но вся штука в том, что зависает захват мютекса в классе RAII для работы с мютексом. Я в полном недоумении.

Если пропустить настройку каналов в инициализации, то зависания не происходит. Что от этого меняется-то?

Прерывания не приходят? Но я полностью отключал поток обработки прерываний (вместе с InterruptAttachEvent) - зависает также на ура. И главное, я не понимаю, чем занимается в это время процессор. Такое впечатление, что система застревает в каком-то своём ISR (моего-то нет - InterruptAttachEvent), откуда не выходит. Странно ещё и то, что если убрать InterruptUnmask, то намертво отваливается USB-клавиатура, но мышка PS/2 живёт, как и вся остальная система. Уж не поделила ли QNX линию прерывания платы PCI7841 с другими устройствами и что-то работает неверно, вот и виснет?
