目次 - SDL 3.0 API(機能別) - 非同期I/O - SDL_DestroyAsyncIOQueue

SDL_DestroyAsyncIOQueue

非同期I/Oタスクキューを破棄する

ヘッダ

SDL3/SDL_iostream.h

構文

void SDL_DestroyAsyncIOQueue(SDL_AsyncIOQueue *queue);

引数

SDL_AsyncIOQueue *queue破棄する非同期I/Oタスクキュー

詳細

キューに保留中のタスクが残っている場合, この呼び出しはタスクが完了するまでブロックされる. キューの全てのタスクは解放される. その処理結果はアプリケーションからは失われる.

キュー内に保留中のSDL_LoadFileAsync()による読み込みがある場合, メモリリークを防ぐため, この関数内でバッファが解放される.

この関数が呼ばれた後のキューは, キュー内のタスクの完了を待っているスレッドからのアクセスを含め, 無効になり使うことができない.

別のスレッドでSDL_WaitAsyncIOResultで完了を待っているキューを破棄してはならない. まずSDL_SignalAsyncIOQueue()を呼んでこれらのスレッドのブロックを解除し, (例えばSDL_WaitThread()で)終了を確認して再びキューにアクセスしないようにする必要がある.

スレッドセーフ

この関数はどのスレッドからも安全に呼べるが, 他のスレッドでSDL_WaitAsyncIOResultでキューを待っていてはならない.

バージョン

SDL 3.2.0以降

SDL Wikiへのリンク

SDL_DestroyAsyncIOQueue - SDL Wiki