SDL_CreateSemaphore()関数は、新しいセマフォを 作成し、initial_valueに指定された値をセットします。 セマフォ上のロック操作である以下の3つの関数、 SDL_SemWait、 SDL_SemTryWait、 SDL_SemWaitTimeout、は、自動的に セマフォの値をデクリメントします。 ロック操作はセマフォの値が正でない(0以下)の場合はブロックされます。 セマフォ上のアンロック操作であるSDL_SemPostは、セマフォの値を排他的にインクリメントします。
SDL_sem *my_sem;
my_sem = SDL_CreateSemaphore(INITIAL_SEM_VALUE);
if (my_sem == NULL) {
return CREATE_SEM_FAILED;
}