Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SDL_SemWaitTimeout(3)		SDL API Reference	   SDL_SemWaitTimeout(3)

NAME
     SDL_SemWaitTimeout - Lock a semaphore, but only wait up to a specified max-
     imum time.

SYNOPSIS
     #include "SDL.h" #include "SDL_thread.h"

     int SDL_SemWaitTimeout(SDL_sem *sem, Uint32 timeout);

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 sema-
     phore. 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.

RETURN VALUE
     Returns 0 if the  semaphore  was  successfully  locked  or  either  SDL_MU-
     TEX_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 un-
     changed.

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);

SEE ALSO
     SDL_CreateSemaphore,  SDL_DestroySemaphore,  SDL_SemWait,	 SDL_SemTryWait,
     SDL_SemPost, SDL_SemValue

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

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=SDL_SemWaitTimeout&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help