【问题标题】:Stopping cocotb forked coroutine停止 cocotb 分叉协程
【发布时间】:2018-09-19 15:41:47
【问题描述】:

我有一个等待信号上升的协程:

@cocotb.coroutine
def wait_for_rise(self):
    yield RisingEdge(self.dut.mysignal)

我在我的 «main» 测试函数中启动它,如下所示:

mythread = cocotb.fork(wait_for_rise())

即使没有信号上升,我也想在一段时间后停止它。我试图“杀死”它:

mythread.kill()

但是会发生异常:

Send raised exception: 'RunningCoroutine' object has no attribute '_join'
                       File "/opt/cocotb/cocotb/decorators.py", line 121, in send
                         return self._coro.send(value)
                       File "/myproject.py", line 206, in i2c_read
                         wTXDRwthread.kill()
                       File "/opt/cocotb/cocotb/decorators.py", line 151, in kill
                         cocotb.scheduler.unschedule(self)
                       File "/opt/cocotb/cocotb/scheduler.py", line 453, in unschedule
                         if coro._join in self._trigger2coros:

是否有正确停止分叉协程的解决方案?

【问题讨论】:

    标签: python coroutine cocotb


    【解决方案1】:

    这看起来与https://github.com/potentialventures/cocotb/issues/650 中的问题非常相似 - 您可以订阅问题以在其状态更改时收到通知。

    【讨论】:

    • 为某人节省一次点击 - 现在已修复
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-01
    • 2018-04-18
    • 2016-01-02
    • 1970-01-01
    • 2016-06-14
    • 2014-02-12
    相关资源
    最近更新 更多