将一个信号量分配给另一个
Assigning one semaphore to other
我可以将一个信号量分配给另一个信号量吗,两者的行为相同,例如。(此 vxworks 代码)
mySemId = semCreate(...)
tempSemId = mySemId;
semTake(tempSemId,...);
...
semGive(mySemId).
上面的代码片段是否可以锁定资源。
其次,如果这可行,是否存在不允许此类处理的编码标准或惯例。
vxWorks semaphore IDs是可复制的,复制的是"just as good"原样,所以这里展示的代码样例没有错。不过,这似乎不是一个特别好的主意。很难从这个片段中看出整个代码是什么样子的,而且在更大的代码块中,我认为很难区分哪些信号量被 Taken 哪些信号量被 Given。
(这不是 C 语言问题:vxWorks 信号量主要 来自 C,但不是 由 语言定义。 )
我可以将一个信号量分配给另一个信号量吗,两者的行为相同,例如。(此 vxworks 代码)
mySemId = semCreate(...)
tempSemId = mySemId;
semTake(tempSemId,...);
...
semGive(mySemId).
上面的代码片段是否可以锁定资源。
其次,如果这可行,是否存在不允许此类处理的编码标准或惯例。
vxWorks semaphore IDs是可复制的,复制的是"just as good"原样,所以这里展示的代码样例没有错。不过,这似乎不是一个特别好的主意。很难从这个片段中看出整个代码是什么样子的,而且在更大的代码块中,我认为很难区分哪些信号量被 Taken 哪些信号量被 Given。
(这不是 C 语言问题:vxWorks 信号量主要 来自 C,但不是 由 语言定义。 )