1

SimPyで、私が処理aし、bリソースrを提供し、実行した場合:

yield request, self, r #request done in process a

プロセスbからリソースを解放するにはどうすればよいですか?

yield release, a, r #release done in b (being a an instance of class a), doesn't work

私も試しました:

r.activeQ.remove(a)

そして、実際にはアクティブキューから削除されますが、を実行するときに行われる暗黙の手順がすべて実行されるわけではなく、意味がないことyieldがわかります。

できますか?はいの場合、どのように?

4

1 に答える 1

1

さて、私の問題は、プロセスbが実際には非アクティブであったため、yield呼び出しが失敗することでした。

私が思いついた回避策は

activate(a, a.function()) #called from process b

どこ

class a(Process):
    def function(self):
        yield release, self, r
        yield passivate, self

これが同じ問題を抱えている人の助けになることを願っています。

于 2011-01-15T22:22:39.600 に答える