CSL_semAcquireDirect(0);
//do somthing
CSL_semReleaseSemaphore(0);
我使用信号量0,但是release的时候修改register的值,它除了修改了本身信号量regsiter里的值,还把我共享里的数据也修改了(破坏了),请问这是为什么呢。
yuxiang li:
回复 Andy Yin1:
andy:
你好,最近在学习信号量的时候遇到几个问题希望得到解答。
1.直接获取信号量只能通过sem_direct,联合获取信号量只能通过sem_indirect,而间接获取信号量则是三个寄存器都可以么(直接,间接,查询)。信号量的释放也是这三个寄存器都可以释放么?
2.在sem_direct寄存器下面的注释为: Only if writer is the current owner(只有信号量的拥有者才可以进行写操作),但是如果我是间接获取则需要对sem_direct寄存器进行写00的操作。此时显然我还不是信号量的拥有者,那我还能进行写操作么?
感谢不吝赐教