symbian-qemu-0.9.1-12/libsdl-trunk/docs/html/sdlsemwaittimeout.html
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 <HTML
       
     2 ><HEAD
       
     3 ><TITLE
       
     4 >SDL_SemWaitTimeout</TITLE
       
     5 ><META
       
     6 NAME="GENERATOR"
       
     7 CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
       
     8 "><LINK
       
     9 REL="HOME"
       
    10 TITLE="SDL Library Documentation"
       
    11 HREF="index.html"><LINK
       
    12 REL="UP"
       
    13 TITLE="Multi-threaded Programming"
       
    14 HREF="thread.html"><LINK
       
    15 REL="PREVIOUS"
       
    16 TITLE="SDL_SemTryWait"
       
    17 HREF="sdlsemtrywait.html"><LINK
       
    18 REL="NEXT"
       
    19 TITLE="SDL_SemPost"
       
    20 HREF="sdlsempost.html"></HEAD
       
    21 ><BODY
       
    22 CLASS="REFENTRY"
       
    23 BGCOLOR="#FFF8DC"
       
    24 TEXT="#000000"
       
    25 LINK="#0000ee"
       
    26 VLINK="#551a8b"
       
    27 ALINK="#ff0000"
       
    28 ><DIV
       
    29 CLASS="NAVHEADER"
       
    30 ><TABLE
       
    31 SUMMARY="Header navigation table"
       
    32 WIDTH="100%"
       
    33 BORDER="0"
       
    34 CELLPADDING="0"
       
    35 CELLSPACING="0"
       
    36 ><TR
       
    37 ><TH
       
    38 COLSPAN="3"
       
    39 ALIGN="center"
       
    40 >SDL Library Documentation</TH
       
    41 ></TR
       
    42 ><TR
       
    43 ><TD
       
    44 WIDTH="10%"
       
    45 ALIGN="left"
       
    46 VALIGN="bottom"
       
    47 ><A
       
    48 HREF="sdlsemtrywait.html"
       
    49 ACCESSKEY="P"
       
    50 >Prev</A
       
    51 ></TD
       
    52 ><TD
       
    53 WIDTH="80%"
       
    54 ALIGN="center"
       
    55 VALIGN="bottom"
       
    56 ></TD
       
    57 ><TD
       
    58 WIDTH="10%"
       
    59 ALIGN="right"
       
    60 VALIGN="bottom"
       
    61 ><A
       
    62 HREF="sdlsempost.html"
       
    63 ACCESSKEY="N"
       
    64 >Next</A
       
    65 ></TD
       
    66 ></TR
       
    67 ></TABLE
       
    68 ><HR
       
    69 ALIGN="LEFT"
       
    70 WIDTH="100%"></DIV
       
    71 ><H1
       
    72 ><A
       
    73 NAME="SDLSEMWAITTIMEOUT"
       
    74 ></A
       
    75 >SDL_SemWaitTimeout</H1
       
    76 ><DIV
       
    77 CLASS="REFNAMEDIV"
       
    78 ><A
       
    79 NAME="AEN8120"
       
    80 ></A
       
    81 ><H2
       
    82 >Name</H2
       
    83 >SDL_SemWaitTimeout&nbsp;--&nbsp;Lock a semaphore, but only wait up to a specified maximum time.</DIV
       
    84 ><DIV
       
    85 CLASS="REFSYNOPSISDIV"
       
    86 ><A
       
    87 NAME="AEN8123"
       
    88 ></A
       
    89 ><H2
       
    90 >Synopsis</H2
       
    91 ><DIV
       
    92 CLASS="FUNCSYNOPSIS"
       
    93 ><A
       
    94 NAME="AEN8124"
       
    95 ></A
       
    96 ><P
       
    97 ></P
       
    98 ><PRE
       
    99 CLASS="FUNCSYNOPSISINFO"
       
   100 >#include "SDL.h"
       
   101 #include "SDL_thread.h"</PRE
       
   102 ><P
       
   103 ><CODE
       
   104 ><CODE
       
   105 CLASS="FUNCDEF"
       
   106 >int <B
       
   107 CLASS="FSFUNC"
       
   108 >SDL_SemWaitTimeout</B
       
   109 ></CODE
       
   110 >(SDL_sem *sem, Uint32 timeout);</CODE
       
   111 ></P
       
   112 ><P
       
   113 ></P
       
   114 ></DIV
       
   115 ></DIV
       
   116 ><DIV
       
   117 CLASS="REFSECT1"
       
   118 ><A
       
   119 NAME="AEN8130"
       
   120 ></A
       
   121 ><H2
       
   122 >Description</H2
       
   123 ><P
       
   124 ><TT
       
   125 CLASS="FUNCTION"
       
   126 >SDL_SemWaitTimeout()</TT
       
   127 > is a varient of
       
   128 <A
       
   129 HREF="sdlsemwait.html"
       
   130 >SDL_SemWait</A
       
   131 >
       
   132 with a maximum timeout value.
       
   133 If the value of the semaphore pointed to by <TT
       
   134 CLASS="PARAMETER"
       
   135 ><I
       
   136 >sem</I
       
   137 ></TT
       
   138 > is
       
   139 positive (greater than zero) it will atomically decrement the semaphore value
       
   140 and return 0, otherwise it will wait up to <TT
       
   141 CLASS="PARAMETER"
       
   142 ><I
       
   143 >timeout</I
       
   144 ></TT
       
   145 >
       
   146 milliseconds trying to lock the semaphore. This function is to be avoided if
       
   147 possible since on some platforms it is implemented by polling the semaphore
       
   148 every millisecond in a busy loop.</P
       
   149 ><P
       
   150 >After <TT
       
   151 CLASS="FUNCTION"
       
   152 >SDL_SemWaitTimeout()</TT
       
   153 > is successful, the semaphore
       
   154 can be released and its count atomically incremented by a successful call to
       
   155 <A
       
   156 HREF="sdlsempost.html"
       
   157 >SDL_SemPost</A
       
   158 >.</P
       
   159 ></DIV
       
   160 ><DIV
       
   161 CLASS="REFSECT1"
       
   162 ><A
       
   163 NAME="AEN8140"
       
   164 ></A
       
   165 ><H2
       
   166 >Return Value</H2
       
   167 ><P
       
   168 >Returns <SPAN
       
   169 CLASS="RETURNVALUE"
       
   170 >0</SPAN
       
   171 > if the semaphore was successfully locked or
       
   172 either <SPAN
       
   173 CLASS="RETURNVALUE"
       
   174 >SDL_MUTEX_TIMEDOUT</SPAN
       
   175 > or <SPAN
       
   176 CLASS="RETURNVALUE"
       
   177 >-1</SPAN
       
   178 >
       
   179 if the timeout period was exceeded or there was an error, respectivly.</P
       
   180 ><P
       
   181 >If the semaphore was not successfully locked, the semaphore will be unchanged.</P
       
   182 ></DIV
       
   183 ><DIV
       
   184 CLASS="REFSECT1"
       
   185 ><A
       
   186 NAME="AEN8147"
       
   187 ></A
       
   188 ><H2
       
   189 >Examples</H2
       
   190 ><P
       
   191 ><PRE
       
   192 CLASS="PROGRAMLISTING"
       
   193 >res = SDL_SemWaitTimeout(my_sem, WAIT_TIMEOUT_MILLISEC);
       
   194 
       
   195 if (res == SDL_MUTEX_TIMEDOUT) {
       
   196         return TRY_AGAIN;
       
   197 }
       
   198 if (res == -1) {
       
   199         return WAIT_ERROR;
       
   200 }
       
   201 
       
   202 ...
       
   203 
       
   204 SDL_SemPost(my_sem);</PRE
       
   205 ></P
       
   206 ></DIV
       
   207 ><DIV
       
   208 CLASS="REFSECT1"
       
   209 ><A
       
   210 NAME="AEN8151"
       
   211 ></A
       
   212 ><H2
       
   213 >See Also</H2
       
   214 ><P
       
   215 ><A
       
   216 HREF="sdlcreatesemaphore.html"
       
   217 ><TT
       
   218 CLASS="FUNCTION"
       
   219 >SDL_CreateSemaphore</TT
       
   220 ></A
       
   221 >,
       
   222 <A
       
   223 HREF="sdldestroysemaphore.html"
       
   224 ><TT
       
   225 CLASS="FUNCTION"
       
   226 >SDL_DestroySemaphore</TT
       
   227 ></A
       
   228 >,
       
   229 <A
       
   230 HREF="sdlsemwait.html"
       
   231 ><TT
       
   232 CLASS="FUNCTION"
       
   233 >SDL_SemWait</TT
       
   234 ></A
       
   235 >,
       
   236 <A
       
   237 HREF="sdlsemtrywait.html"
       
   238 ><TT
       
   239 CLASS="FUNCTION"
       
   240 >SDL_SemTryWait</TT
       
   241 ></A
       
   242 >,
       
   243 <A
       
   244 HREF="sdlsempost.html"
       
   245 ><TT
       
   246 CLASS="FUNCTION"
       
   247 >SDL_SemPost</TT
       
   248 ></A
       
   249 >,
       
   250 <A
       
   251 HREF="sdlsemvalue.html"
       
   252 ><TT
       
   253 CLASS="FUNCTION"
       
   254 >SDL_SemValue</TT
       
   255 ></A
       
   256 ></P
       
   257 ></DIV
       
   258 ><DIV
       
   259 CLASS="NAVFOOTER"
       
   260 ><HR
       
   261 ALIGN="LEFT"
       
   262 WIDTH="100%"><TABLE
       
   263 SUMMARY="Footer navigation table"
       
   264 WIDTH="100%"
       
   265 BORDER="0"
       
   266 CELLPADDING="0"
       
   267 CELLSPACING="0"
       
   268 ><TR
       
   269 ><TD
       
   270 WIDTH="33%"
       
   271 ALIGN="left"
       
   272 VALIGN="top"
       
   273 ><A
       
   274 HREF="sdlsemtrywait.html"
       
   275 ACCESSKEY="P"
       
   276 >Prev</A
       
   277 ></TD
       
   278 ><TD
       
   279 WIDTH="34%"
       
   280 ALIGN="center"
       
   281 VALIGN="top"
       
   282 ><A
       
   283 HREF="index.html"
       
   284 ACCESSKEY="H"
       
   285 >Home</A
       
   286 ></TD
       
   287 ><TD
       
   288 WIDTH="33%"
       
   289 ALIGN="right"
       
   290 VALIGN="top"
       
   291 ><A
       
   292 HREF="sdlsempost.html"
       
   293 ACCESSKEY="N"
       
   294 >Next</A
       
   295 ></TD
       
   296 ></TR
       
   297 ><TR
       
   298 ><TD
       
   299 WIDTH="33%"
       
   300 ALIGN="left"
       
   301 VALIGN="top"
       
   302 >SDL_SemTryWait</TD
       
   303 ><TD
       
   304 WIDTH="34%"
       
   305 ALIGN="center"
       
   306 VALIGN="top"
       
   307 ><A
       
   308 HREF="thread.html"
       
   309 ACCESSKEY="U"
       
   310 >Up</A
       
   311 ></TD
       
   312 ><TD
       
   313 WIDTH="33%"
       
   314 ALIGN="right"
       
   315 VALIGN="top"
       
   316 >SDL_SemPost</TD
       
   317 ></TR
       
   318 ></TABLE
       
   319 ></DIV
       
   320 ></BODY
       
   321 ></HTML
       
   322 >