int SDL_CondWaitTimeout(SDL_cond* cond, SDL_mutex* mutex, Uint32 ms)
| cond | 待つ条件変数 | 
| mutex | スレッドアクセスを制御するためのmutex | 
| ms | ミリ秒単位の最大待ち時間. SDL_MUTEX_MAXWAITのとき無制限に待つ | 
SDL_bool condition = SDL_FALSE;
SDL_mutex *lock;
SDL_cond *cond;
lock = SDL_CreateMutex();
cond = SDL_CreateCond();
.
.
Thread A:
    const Uint32 timeout = 1000; /* 1秒ごとに動作する */
    while (!done) {
        SDL_LockMutex(lock);
        while (!condition && SDL_CondWaitTimeout(cond, lock, timeout) == 0) {
            continue;
        }
        SDL_UnlockMutex(lock);
        if (condition) {
            ...
        }
        ... ここで周期的な処理を行う
    }
Thread B:
    SDL_LockMutex(lock);
    ...
    condition = SDL_TRUE;
    ...
    SDL_CondSignal(cond);
    SDL_UnlockMutex(lock);
.
.
SDL_DestroyCond(cond);
SDL_DestroyMutex(lock);
この関数はmutexのロックを解除し, 別のスレッドがSDL_CondSignal()かSDL_CondBroadcast()を呼んで条件変数condを通知する, あるいは指定の時間が経過するまで待つ. 条件変数が通知, または指定の時間が経過すれば, mutexは再びロックされ関数から戻る.
mutexはこの関数を呼ぶ前にロックされている必要がある.