1<HTML 2><HEAD 3><TITLE 4>SDL_SemPost</TITLE 5><META 6NAME="GENERATOR" 7CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ 8"><LINK 9REL="HOME" 10TITLE="SDL Library Documentation" 11HREF="index.html"><LINK 12REL="UP" 13TITLE="Multi-threaded Programming" 14HREF="thread.html"><LINK 15REL="PREVIOUS" 16TITLE="SDL_SemWaitTimeout" 17HREF="sdlsemwaittimeout.html"><LINK 18REL="NEXT" 19TITLE="SDL_SemValue" 20HREF="sdlsemvalue.html"></HEAD 21><BODY 22CLASS="REFENTRY" 23BGCOLOR="#FFF8DC" 24TEXT="#000000" 25LINK="#0000ee" 26VLINK="#551a8b" 27ALINK="#ff0000" 28><DIV 29CLASS="NAVHEADER" 30><TABLE 31SUMMARY="Header navigation table" 32WIDTH="100%" 33BORDER="0" 34CELLPADDING="0" 35CELLSPACING="0" 36><TR 37><TH 38COLSPAN="3" 39ALIGN="center" 40>SDL Library Documentation</TH 41></TR 42><TR 43><TD 44WIDTH="10%" 45ALIGN="left" 46VALIGN="bottom" 47><A 48HREF="sdlsemwaittimeout.html" 49ACCESSKEY="P" 50>Prev</A 51></TD 52><TD 53WIDTH="80%" 54ALIGN="center" 55VALIGN="bottom" 56></TD 57><TD 58WIDTH="10%" 59ALIGN="right" 60VALIGN="bottom" 61><A 62HREF="sdlsemvalue.html" 63ACCESSKEY="N" 64>Next</A 65></TD 66></TR 67></TABLE 68><HR 69ALIGN="LEFT" 70WIDTH="100%"></DIV 71><H1 72><A 73NAME="SDLSEMPOST" 74></A 75>SDL_SemPost</H1 76><DIV 77CLASS="REFNAMEDIV" 78><A 79NAME="AEN8170" 80></A 81><H2 82>Name</H2 83>SDL_SemPost -- Unlock a semaphore.</DIV 84><DIV 85CLASS="REFSYNOPSISDIV" 86><A 87NAME="AEN8173" 88></A 89><H2 90>Synopsis</H2 91><DIV 92CLASS="FUNCSYNOPSIS" 93><A 94NAME="AEN8174" 95></A 96><P 97></P 98><PRE 99CLASS="FUNCSYNOPSISINFO" 100>#include "SDL.h" 101#include "SDL_thread.h"</PRE 102><P 103><CODE 104><CODE 105CLASS="FUNCDEF" 106>int <B 107CLASS="FSFUNC" 108>SDL_SemPost</B 109></CODE 110>(SDL_sem *sem);</CODE 111></P 112><P 113></P 114></DIV 115></DIV 116><DIV 117CLASS="REFSECT1" 118><A 119NAME="AEN8180" 120></A 121><H2 122>Description</H2 123><P 124><TT 125CLASS="FUNCTION" 126>SDL_SemPost</TT 127> unlocks the semaphore pointed to by 128<TT 129CLASS="PARAMETER" 130><I 131>sem</I 132></TT 133> and atomically increments the semaphores value. 134Threads that were blocking on the semaphore may be scheduled after this call 135succeeds.</P 136><P 137><TT 138CLASS="FUNCTION" 139>SDL_SemPost</TT 140> should be called after a semaphore is locked by a successful call to 141<A 142HREF="sdlsemwait.html" 143>SDL_SemWait</A 144>, 145<A 146HREF="sdlsemtrywait.html" 147>SDL_SemTryWait</A 148> or 149<A 150HREF="sdlsemwaittimeout.html" 151>SDL_SemWaitTimeout</A 152>.</P 153></DIV 154><DIV 155CLASS="REFSECT1" 156><A 157NAME="AEN8190" 158></A 159><H2 160>Return Value</H2 161><P 162>Returns <SPAN 163CLASS="RETURNVALUE" 164>0</SPAN 165> if successful or 166<SPAN 167CLASS="RETURNVALUE" 168>-1</SPAN 169> if there was an error (leaving the semaphore unchanged).</P 170></DIV 171><DIV 172CLASS="REFSECT1" 173><A 174NAME="AEN8195" 175></A 176><H2 177>Examples</H2 178><P 179><PRE 180CLASS="PROGRAMLISTING" 181>SDL_SemPost(my_sem);</PRE 182></P 183></DIV 184><DIV 185CLASS="REFSECT1" 186><A 187NAME="AEN8199" 188></A 189><H2 190>See Also</H2 191><P 192><A 193HREF="sdlcreatesemaphore.html" 194><TT 195CLASS="FUNCTION" 196>SDL_CreateSemaphore</TT 197></A 198>, 199<A 200HREF="sdldestroysemaphore.html" 201><TT 202CLASS="FUNCTION" 203>SDL_DestroySemaphore</TT 204></A 205>, 206<A 207HREF="sdlsemwait.html" 208><TT 209CLASS="FUNCTION" 210>SDL_SemWait</TT 211></A 212>, 213<A 214HREF="sdlsemtrywait.html" 215><TT 216CLASS="FUNCTION" 217>SDL_SemTryWait</TT 218></A 219>, 220<A 221HREF="sdlsemwaittimeout.html" 222><TT 223CLASS="FUNCTION" 224>SDL_SemWaitTimeout</TT 225></A 226>, 227<A 228HREF="sdlsemvalue.html" 229><TT 230CLASS="FUNCTION" 231>SDL_SemValue</TT 232></A 233></P 234></DIV 235><DIV 236CLASS="NAVFOOTER" 237><HR 238ALIGN="LEFT" 239WIDTH="100%"><TABLE 240SUMMARY="Footer navigation table" 241WIDTH="100%" 242BORDER="0" 243CELLPADDING="0" 244CELLSPACING="0" 245><TR 246><TD 247WIDTH="33%" 248ALIGN="left" 249VALIGN="top" 250><A 251HREF="sdlsemwaittimeout.html" 252ACCESSKEY="P" 253>Prev</A 254></TD 255><TD 256WIDTH="34%" 257ALIGN="center" 258VALIGN="top" 259><A 260HREF="index.html" 261ACCESSKEY="H" 262>Home</A 263></TD 264><TD 265WIDTH="33%" 266ALIGN="right" 267VALIGN="top" 268><A 269HREF="sdlsemvalue.html" 270ACCESSKEY="N" 271>Next</A 272></TD 273></TR 274><TR 275><TD 276WIDTH="33%" 277ALIGN="left" 278VALIGN="top" 279>SDL_SemWaitTimeout</TD 280><TD 281WIDTH="34%" 282ALIGN="center" 283VALIGN="top" 284><A 285HREF="thread.html" 286ACCESSKEY="U" 287>Up</A 288></TD 289><TD 290WIDTH="33%" 291ALIGN="right" 292VALIGN="top" 293>SDL_SemValue</TD 294></TR 295></TABLE 296></DIV 297></BODY 298></HTML 299>