[SDL] alpha conditionals

Paul Braman aeon at tampabay.rr.com
Sat Nov 13 19:38:38 PST 1999


I have attached some alpha code testing the following functions...

	SDL_CreateCond()
	SDL_DestroyCond()
	SDL_WaitCond()
	SDL_condSignalOne()
	SDL_condSignalAll()

...I have only tested on Linux and need some testing on other platforms.

For POSIX threads-enabled systems we can use the POSIX threads conditional
variables themselves.

Now, it turns out that if my design works as I think it does we can use
mutexes easily on systems that don't support conditionals naturally.

Here's the basic design for non-POSIX-enabled systems...

	SDL_CreateCond()

		Create and lock a mutex.

	SDL_WaitCond()

		Increment the reference count and attempt to lock mutex.
		When signaled decrement the reference count.

	SDL_condSignalOne()

		Unlock mutex.

	SDL_condSignalAll()

		Unlock mutex "reference count" times.


Thoughts on this design?


Paul Braman
aeon at tampabay.rr.com
-------------- next part --------------
begin 660 cond.tar.gz
M'XL("`HM+C@"`V-O;F0N=&%R`.U:6V_;-A3.J_4K3AUT5=PXL2S)!NJV6-$$
MV[!D[9JTV[`-*2W3ME!9,B0Z;3KTOX\7R;I8DB4WL=N`YR&1>3DW?B0/#VEY
M[NAX[VX)C$Z_WX$]`.CWC-3_D#JTI*/I1K>G]W4`K=/IFGM@[FV!%@%!/L`>
MPIY;UFY=_7=*%AO_BY.S*_9Q-5L0_.G(NF49=#A[O>+Q-[6>GAE_73/T/>C(
M\;]S"HB_L`A$"(#_E`;[YD"`%O\W2!7Y>&QY"Y=<174+-[`G+AZ![1*(:@?*
MEX&BD)LY'N$Q9(5$'[3)LJS%OE[Z&!'\DOY6KSU[=!"I(UJPOS:Q/1<YM&<C
M\1.>@1JW.Y at AQ_$L-;`_8V^L)OL='%"-[3&HJ<[/X+>W9V=<&A?W:D%>C<_Q
MS/-O5-:AX6.R\%V5MZ*_OZ2EMY\+WSR#V(9S5J+F2%LVS at J]P.34]SU?;;[T
M%L[(?43`XJR`=VAR1<8^QDENE;1+#UE5-;.]-M*7-3S!=/R]&R%JU1.U[&):
M+L'X.H];J8(4%1\V4:^\7=I3M>P)B](M:06;2TSH'\@F?#KDS@)N*W/)@VQA
MQ@&O41#0&8KX$$*B<3.I6%NKXN:,M?#@&71J.7U%6B[[QX\'647>?:4B"W>M
M*NOQ=0OV?@/>;;=WX=VPH)/&.!-[0;<0Y+QR\2Z!_FZS\;X%PU\X3HGAJ1TV
MW%[OQ[RG[.AVE"MF%_C\.+4=S+9!/D,$MUH(J2X[+9Q*S\$)"X$@L?54V`AR
M\5"L^M;WP"_4KCU)W]CY[QQ]P&,*_3N2L>;\!WI/B\Y_IJ;UZ/E/,W53GO^V
M0?2D]$1I_(BMJ0>/9A0',"=3&L:/P/.!_P[P#,VGGH\?*4I81WM,+`O>!R.G
M30$TMB?0;EMC!TV"]]`^N;JZ?//7U>O+G]^<OJ`_H.U!X,TPF=KN)/XZRC)P
M[&'P7E'X`E))POG;R],_Z_*74WYU_B=\MOWYKW6-OA'/?Y/-_ZZN=>7\WP;M
MVZ[E+$88G at 9D9'M'T^=*JHA.&E:6**1Q`$L8IEN&A5=B?<BO$\E%P6S,TD*9
M=4+99W"(NC672<EPT3FRFLH^=NRH7SC[BWJ%J4S6AT8 at 8T6AXTQLB\?0A(8Q
M&L\P08M&)9F:;F&-7EAC%-:8J+AJ6%QEQ57*#-FNRFJ0/[$.6;@<T'/`E,*V
M14NN__YWF2>[%$MW2WALD%=HHOSB87ZQ-2A,",91*(O5CUMPYM&.9(I9S`H4
M.#[R;Z!U',?QO[@VH<$M/(WBY?'<IW:-50HT[/N'$$?,-FUJ(\?^S+D]@8?!
M/V[SD$?#/T7Q-4_F-?`GRC0,X1N(\)^LV>\+FS#O->8+$JC-YH'04FE`"RY/
M+RY!8Y_'43W/7;$-A+D?PCUP7P/B@;]P84RW0Y/NA<S<@(?P89-D-DWX3N7P
M.H0HS\.LCQHGDVC%QH=YM'"SK6I[E"^*M.#_8C6$F7/?FV/?N:%F^C/;I6)&
M&8N;I4[K5G!:ESEMB.&#[3C\U%K+<]W=>.X$.^A&-5MTL^K$[F(FK-K'K6"=
M?J75*7>7^DX/?;<N#;N1R2)LJFJQ4)$=2IEU\;DTDP!8.>`6JQ$?<&LJD8\A
MG6%HXJ.AX`D^=C`*ZJ-)/X3EB73W<!)Y@!*7OZOC\F168<NKA+Z<`JF40.3J
MXCE at A'.`;Q[),>/)C>1%1,TQ2B0:;@6`1KB(!3Q!5Q]X!M^H1]\&[H01W$;.
M, at 6\=/Z5*UT)?H+I;G8I(XL_#I_0X<7H,[\7])FH(OQHPP(`FB@/@:S]76*P
MU*AA5:.&A48-<XT:[M`HJZI15J%15JY1UNY7"^1$\SLH6#+8S<5.E at P&[YJ+
MAHF6J\8JNV%]=L,2=E9]=E;U-2U]3U!PLATA at L3%0'1MA'T*07.0N>G`?G37
M(43$9Q\[H`BPK_$#<6<AUD;>(W'=(3"D+3$D[C+*5>R6J]CM5-6Q^U4Z9GE%
M0\.@[[E at DP"\C^[1T9'KD?`TPZ64VJ9G;4M+T0$1 at F=SL9+0&!>'L3,56!B'
MJXDC^(%@?*<Q>:SLQ,NH=PBL/54^+WC=4,^-`MG203#*!\&`C\B.ACE<E*YM
MM')#FGJ"D7QAQ/D.5ME::#&9DC*6I6J;F>N]=+(G/&)R<X0KEY(?!NLMXEY=
M'E/3MD7;3P[?4I,R/,N-0]E!"9L+R[/NI0!A"W8^JV%M5L,B5E9M5E;(ZOZ]
M_URF6K=Y_Z<;_7Z4_^_V=(V]_S2Z?9G_WV[^?Q[G[I6<5Z%AM<`)`9'V79;R
MI9L6A_GA^_[XDS%).82EJ]4?4B\BQ/HM>*]]G+)ZC&S6?A>9'HL<C<+]NYY*
MB3<K*8M'(D;-,?J^/(!,^Y-%*'G^O*T'@2GGLKT\%TZ;*<#8L;A at Q>ZTB2(,
MRS6RHI-*.-SC!X2IH1-Q4MZT6.^!,,;R7)P[6K?\K'!%]:'OH9&%`O)5VK.<
MP0;:W\9CMSH+5!JX^8WE6S9)DB1)DB1)DB1)DB1)DB1)DB1)DB1)DB1)DB1)
,WQG]#UW6`;X`4```
`
end


More information about the SDL mailing list