logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

SDL_SemWaitTimeout - Lock a semaphore, but only wait up to a specified maximum time.

Description

SDL_SemWaitTimeout()  is  a  varient  of  SDL_SemWait  with  a maximum timeout value. If the value of the
       semaphore pointed to by sem is positive (greater than zero) it will atomically  decrement  the  semaphore
       value  and return 0, otherwise it will wait up to timeout milliseconds trying to lock the semaphore. This
       function is to be avoided if possible since on some platforms it is implemented by polling the  semaphore
       every millisecond in a busy loop.

       After  SDL_SemWaitTimeout()  is  successful,  the  semaphore  can  be  released  and its count atomically
       incremented by a successful call to SDL_SemPost.

Examples

       res = SDL_SemWaitTimeout(my_sem, WAIT_TIMEOUT_MILLISEC);

       if (res == SDL_MUTEX_TIMEOUT) {
               return TRY_AGAIN;
       }
       if (res == -1) {
               return WAIT_ERROR;
       }

       ...

       SDL_SemPost(my_sem);

Name

       SDL_SemWaitTimeout - Lock a semaphore, but only wait up to a specified maximum time.

Return Value

       Returns 0 if the semaphore was successfully locked or either  SDL_MUTEX_TIMEOUT  or  -1  if  the  timeout
       period was exceeded or there was an error, respectivly.

       If the semaphore was not successfully locked, the semaphore will be unchanged.

See Also

SDL_CreateSemaphore, SDL_DestroySemaphore, SDL_SemWait, SDL_SemTryWait, SDL_SemPost, SDL_SemValue

SDL                                          Tue 11 Sep 2001, 23:00                        SDL_SemWaitTimeout(3)

Synopsis

#include"SDL.h"#include"SDL_thread.h"intSDL_SemWaitTimeout(SDL_sem*sem,Uint32timeout);

See Also