cobalt:当StorageManager调用析构函数时,last_change_timer_或change_max_delay_timer_中有任务,可能会被丢弃

时间:2017-12-04 12:54:23

标签: cobalt

我发现StorageManager在调用析构函数时会调用FinishIO和OnDestroy。它将在FinishIO中等待sql_message_loop和savegame_thread_完成,并重置资源包括flush_on_last_change_timer_和flush_on_change_max_delay_timer_。因此,当iStorageManager调用析构函数时,如果flush_on_last_change_timer_或flush_on_change_max_delay_timer_中有任务,它可能会丢弃此任务并导致上一次savegame操作未命中。这是一个问题,还是我不理解。

1 个答案:

答案 0 :(得分:1)

感谢您指出这一点。我相信你是对的;如果在计时器关闭之前销毁StorageManager,似乎无法进行最后一次保存。这将在以后的Cobalt版本中修复。