view docs/man3/SDL_SemTryWait.3 @ 3292:245a7d79577c

Fixed bug #615 Scott McCreary 2008-08-21 10:48:14 PDT This patch adds support for Haiku. http://ports.haiku-files.org/browser/haikuports/trunk/media-libs/libsdl/SDL-1.2.13-haiku.diff Haiku is an open-source recreation of BeOS. It has better POSIX compliance than beOS did, and other improved features, which in some cases causes us to have to "undo" previous BeOS workarounds. Here's our port log entry for it, showing the steps to force the changes into configure and Makefile: http://ports.haiku-files.org/wiki/media-libs/libsdl/1.2.13/1 Note that this was only tried on 1.2.13 stable so far. Haiku is using a newer config.guess / config.sub that doesn't yet seem to be in the released libtool, so we are having to copy it in for now. http://haiku-files.org/files/optional-packages/
author Sam Lantinga <slouken@libsdl.org>
date Mon, 21 Sep 2009 09:21:00 +0000
parents 546f7c1eb755
children 1238da4a7112
line wrap: on
line source

.TH "SDL_SemTryWait" "3" "Tue 11 Sep 2001, 23:00" "SDL" "SDL API Reference" 
.SH "NAME"
SDL_SemTryWait \- Attempt to lock a semaphore but don\&'t suspend the thread\&.
.SH "SYNOPSIS"
.PP
\fB#include "SDL\&.h"
#include "SDL_thread\&.h"
.sp
\fBint \fBSDL_SemTryWait\fP\fR(\fBSDL_sem *sem\fR);
.SH "DESCRIPTION"
.PP
\fBSDL_SemTryWait\fP is a non-blocking varient of \fI\fBSDL_SemWait\fP\fR\&. If the value of the semaphore pointed to by \fBsem\fR is positive it will atomically decrement the semaphore value and return 0, otherwise it will return \fBSDL_MUTEX_TIMEOUT\fR instead of suspending the thread\&.
.PP
After \fBSDL_SemTryWait\fP is successful, the semaphore can be released and its count atomically incremented by a successful call to \fISDL_SemPost\fR\&.
.SH "RETURN VALUE"
.PP
Returns \fB0\fR if the semaphore was successfully locked or either \fBSDL_MUTEX_TIMEOUT\fR or \fB-1\fR if the thread would have suspended or there was an error, respectivly\&.
.PP
If the semaphore was not successfully locked, the semaphore will be unchanged\&.
.SH "EXAMPLES"
.PP
.PP
.nf
\f(CWres = SDL_SemTryWait(my_sem);

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

\&.\&.\&.

SDL_SemPost(my_sem);\fR
.fi
.PP
.SH "SEE ALSO"
.PP
\fI\fBSDL_CreateSemaphore\fP\fR, \fI\fBSDL_DestroySemaphore\fP\fR, \fI\fBSDL_SemWait\fP\fR, \fI\fBSDL_SemWaitTimeout\fP\fR, \fI\fBSDL_SemPost\fP\fR, \fI\fBSDL_SemValue\fP\fR
...\" created by instant / docbook-to-man, Tue 11 Sep 2001, 23:00