スレッドモデル | 説明 | 初期化定数 |
---|---|---|
マルチスレッドフレームワーク(タイマ駆動式) | ライブラリでスレッド作成 | CRIATOMEX_THREAD_MODEL_MULTI |
マルチスレッドフレームワーク(ユーザ駆動式) | ライブラリでスレッド作成 | CRIATOMEX_THREAD_MODEL_MULTI_USER_DRIVEN |
ユーザマルチスレッドフレームワーク | アプリでスレッド作成 | CRIATOMEX_THREAD_MODEL_USER_MULTI |
シングルスレッドフレームワーク | スレッド未使用 | CRIATOMEX_THREAD_MODEL_SINGLE |
マルチスレッドフレームワーク(タイマー駆動式)の概念
マルチスレッドフレームワーク(ユーザ駆動式)の概念
ユーザマルチスレッドフレームワークの概念
シングルスレッドフレームワークの概念
モジュール | スレッドセーフかどうか | 補足 |
---|---|---|
CriAtomEx API | スレッドセーフではありません | 一部例外的にスレッドセーフな関数もあります(後述) |
CriAtomExPlayer API | スレッドセーフではありません | 1つのハンドルを複数のスレッドから同時にアクセスした場合、問題が発生します |
CriAtomExVoicePool API | スレッドセーフではありません | 1つのハンドルを複数のスレッドから同時にアクセスした場合、問題が発生します |
CriAtomExAcb API | スレッドセーフではありません | 1つのハンドルを複数のスレッドから同時にアクセスした場合、問題が発生します |
CriAtomPlayer API | スレッドセーフではありません | 1つのハンドルを複数のスレッドから同時にアクセスした場合、問題が発生します |
CriAtomAwb API | スレッドセーフではありません | 1つのハンドルを複数のスレッドから同時にアクセスした場合、問題が発生します |
CriAtomHcaMx API | スレッドセーフではありません | 1つのハンドルを複数のスレッドから同時にアクセスした場合、問題が発生します |
CriAtomAsr API | スレッドセーフではありません | 1つのハンドルを複数のスレッドから同時にアクセスした場合、問題が発生します |
CriErr API | スレッドセーフではありません |
void thread_func1(void) { CriAtomExPlayerStatus player_status; player_1 = criAtomExPlayer_Create(&player_config, NULL, 0); criAtomExPlayer_SetCueId(player_1, acb_hn, CRIATOMEX_CUE_BOMB2); for (;;) { player_status = criAtomExPlayer_GetStatus(player_1); if (player_status == CRIATOMEXPLAYER_STATUS_PLAYEND) { break; } criAtomEx_ExecuteMain(); sleep(10); } criAtomExPlayer_Destroy(player_1); } void thread_func2(void) { CriAtomExPlayerStatus player_status; player_2 = criAtomExPlayer_Create(&player_config, NULL, 0); criAtomExPlayer_SetCueId(player_2, acb_hn, CRIATOMEX_CUE_THUNDER3); for (;;) { player_status = criAtomExPlayer_GetStatus(player_2); if (player_status == CRIATOMEXPLAYER_STATUS_PLAYEND) { break; } criAtomEx_ExecuteMain(); sleep(10); } criAtomExPlayer_Destroy(player_2); }