如上图,通过判断通道内部是否有数据被消费来选择性的消费已经有的数据,保证reset的正确实现,我想问的是这样实现没有并发问题么?如果在if判断的时候这个超时事件还没有过期,跳过消费数据的代码,然后这个协程被切换出去,后台定时器相关的协程执行,刚好这个Timer超时,往通道里写了数据,这样reset时仍然有数据在通道内没有被消费。 我觉得必须要更强的同步操作保证正确性,是这样么?如果不是的话如何理解这段代码,以及如何实现并发安全的reset操作。