【发布时间】:2018-02-12 05:21:14
【问题描述】:
我们正在进行的项目使用 Coro 进行异步处理,不幸的是它太大而无法在不久的将来离开 Coro。我们遇到了一种竞争条件,其中具有惰性属性的对象调用构建器内的该惰性属性的构建器,线程由于某种原因放弃了,然后不同的 coro 线程尝试访问相同的属性,从而触发再次构建该属性。
通常我会保护检查,然后使用信号量设置代码,但是 Moose 的检查和设置行为是在 moose 内部而不是我自己的代码中。
我怎样才能消除这种竞争条件?
【问题讨论】: