中断退出死机的现象怎么解决?

我用了一块采集卡
当今行了中断连接后,就是InterruptAttach (irq_no, handler0, NULL, 0, 0)后,进入正常运行状态,中断服务程序里就做了一个中断标志清除的操作,
const struct sigevent *_7249_handler(void *arg, int id)
{
_7249_CLR_IRQ(card_number);
return &event7249;
}
有一个线程来监视中断的发生来处理数据。
但当软件退出来,尤其非法退出(如,kill掉等),就死机了,界面不动了,鼠标键盘也没有反应。
这种死机现象是什么原因引起的,又怎么解决?请各位大虾不吝赐教!