Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Thursday, June 13, 2019
 
 

SDL_SemWaitTimeout (3)

Name

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

Synopsis

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

int SDL_SemWaitTimeout(SDL_sem *sem, Uint32 timeout);

Description

SDL_SemWaitTimeout(3)          SDL API Reference         SDL_SemWaitTimeout(3)



NAME
       SDL_SemWaitTimeout  - Lock a semaphore, but only wait up to a specified
       maximum 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 semaphore. This function is to be avoided if possible since
       on some platforms it is implemented by polling the semaphore every mil-
       lisecond 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_Sem-
       Post.

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.

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

ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+------------------+
       |ATTRIBUTE TYPE | ATTRIBUTE VALUE  |
       +---------------+------------------+
       |Availability   | library/sdl      |
       +---------------+------------------+
       |Stability      | Volatile         |
       +---------------+------------------+
SEE ALSO
       SDL_CreateSemaphore, SDL_DestroySemaphore, SDL_SemWait, SDL_SemTryWait,
       SDL_SemPost, SDL_SemValue



NOTES
       This    software    was    built    from    source     available     at
       https://github.com/oracle/solaris-userland.    The  original  community
       source       was        downloaded        from         https://www.lib-
       sdl.org/release/SDL-1.2.15.tar.gz

       Further information about this software can be found on the open source
       community website at https://www.libsdl.org/.



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