为了对包含中断器的某些代码进行单元测试,我需要确保在主测试线程继续之前发布到中断器的事件得到处理(显然,我没有测试中断器代码)。
在没有更优雅的解决方案的情况下,我克服了如下问题:
...
ringBuffer.publish(sequence);
while (ringBuffer.getBufferSize() > ringBuffer.remainingCapacity()) {
Thread.yield();
}
但是,我想知道是否有某种方法可以将中断器设置为“同步模式”(我看了但找不到),或者可以使用“同步模拟中断器”实现来确保线程不会publish()
在所有事件都被处理之前返回onEvent()
?