允许保留阻止取消阻止一种以上的代理类型

Allow hold block to unblock more than one agent type

所以,我目前正在将两个不同的代理(每个都来自它们自己的源块)发送到一个公共队列。在该队列中,我使用代理比较来确定一个代理优先于另一个代理。

在此处查看描述性图片:

但是,在即将到来的等待阻塞中,我似乎无法解除阻塞队列中与第一个代理类型不同的下一个单元(即使我已将其设置为“isBlocked = False”前一个单元退出 seize-delay-release)。之后,第一个进入服务的代理类型是唯一可以在整个模拟过程中运行的代理类型。另一个代理类型卡在队列中。

关于如何通过 Hold-block 获得其他代理类型的任何想法?

保留块将独立于其前面队列中的代理类型工作。

您不应该使用 isBlocked = false 来 'open ' 或 'close' 保留。如果保留块是否被阻止,此代码只是 returns。

您应该使用 block 进行阻止,unblock 进行解锁

这是一个小的工作示例,其中

  • 保留块设置为初始阻止 = false
  • 使用 self.block()
  • 阻止对保留块的 On Enter 代码的保留
  • 在最后一次延迟时使用带有 hold.unblock()
  • 的 On Exit 代码解除阻塞

最重要的是,它使用两种不同的代理类型来证明它可以处理多种代理类型。