新人求助:io-pkt的驱动,在执行ioctl时收不到中断

最近在做一个io-pkt的driver,需要在执行ioctl的过程中往fpga里面写数据,然后fpga操作完成后,会发一个中断信号,中断处理函数收到这个信号后,会用pthread_cond_signal告诉写数据的程序,然后在ioctl中继续执行。ioctl里面收信号的函数是pthread_cond_timedwait. 但是现在出现一个问题,在进入ioctl后,就再也收不到中断信号了,中断处理函数一次都没有执行,一直等到pthread_cond_timedwait函数timeout,ioctl退出后,才能收到中断信号。找了好久也不知道问题在哪里。
本人刚接触qnx不久,希望有人能帮忙给点建议。

如果我要猜的话,是因为中断挂的event被ioctl处理给挡住了。

如果你熟悉QNX的中断处理的话,可以找找中断是怎么挂上去的,然后尝试用别的办法(用专用线程,InterruptWait())什么的。

也可以考虑把ioctl()操作分成两个部份,向FPGA写出后直接结束,中断来后处理下半部份…