根据realized?的文档字符串,我同意,如果延迟仍在途中,返回false是正确的行为。但是,确实存在这样的时刻,我在并发环境中使用延迟和realized?来了解“延迟是否已强制执行?”以决定我是要替换延迟(在atom中)还是等待已经进行中的过程完成。我可以用deref来实现这一点,然而,我不想如果它尚未开始行驶就启动这个过程。
如果我的理解正确,1.11之后我不能再使用realized?来检测这种情况。是否存在一个支持回答“延迟是否已强制执行?”的方法,或者现在我需要创建自己的结构体?
在deref中同步块开始时(但在thunk启动/完成之前),变得对所有线程可见的第二个isForced() / forced?谓词是解决我请求的一个可能的方案。