ResourceReloadListener#reload
不应自行执行任何重新加载。 相反,它的目标是返回一个CompletableFuture
,它在评估时应该将实际的重新加载任务提交给各种Executor
s。
如果您尝试通过将代码直接放入reload
并返回一些不执行任何操作的虚拟CompletableFuture
来欺骗系统,则游戏会在重新加载时挂起,因为Synchronizer#whenPrepared
返回的未来永远不会得到叫。
将其命名createReloadTask
似乎是一种阻止此路径的方法,并澄清不应直接在此方法中进行重新加载。
imo, ResourceReloadListener
应该重命名为ResourceReloader
因为它们是实际执行重新加载的(与ResourceReloadHandler
相比)。 reload
名称很好 imo,或者我们可以考虑为所有CompletableFuture
相关名称使用一致的命名方案。
看了下,我们已经有了一个监控reload的资源reloader。
现在,我对它应该命名什么,或者是否应该重命名有点困惑。
嗯,也许ResourceReloader
-> SimpleResourceReload
, ResourceReloadListener
-> ResourceReloader
。 此外,将ResourceReloadMonitor
命名为ResourceReload
并相应地命名实现。 ResourceReload
代表一次重载,之后立即丢弃,所以这个名字实际上听起来不错。
最有用的评论
imo,
ResourceReloadListener
应该重命名为ResourceReloader
因为它们是实际执行重新加载的(与ResourceReloadHandler
相比)。reload
名称很好 imo,或者我们可以考虑为所有CompletableFuture
相关名称使用一致的命名方案。