First commit for SDL atomic operations.
On my linux box it compiles and installs correctly and testatomic runs without errors. --HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%403638
This commit is contained in:
parent
d083f30b19
commit
d813a7eac5
11 changed files with 755 additions and 2 deletions
|
@ -7,7 +7,7 @@ EXE = @EXE@
|
|||
CFLAGS = @CFLAGS@
|
||||
LIBS = @LIBS@
|
||||
|
||||
TARGETS = checkkeys$(EXE) graywin$(EXE) loopwave$(EXE) testresample$(EXE) testaudioinfo$(EXE) testmultiaudio$(EXE) testpower$(EXE) testalpha$(EXE) testbitmap$(EXE) testblitspeed$(EXE) testcdrom$(EXE) testcursor$(EXE) testintersections$(EXE) testdraw2$(EXE) testdyngl$(EXE) testdyngles$(EXE) testerror$(EXE) testfile$(EXE) testgamma$(EXE) testgl$(EXE) testgl2$(EXE) testgles$(EXE) testhread$(EXE) testiconv$(EXE) testjoystick$(EXE) testkeys$(EXE) testlock$(EXE) testoverlay2$(EXE) testoverlay$(EXE) testpalette$(EXE) testplatform$(EXE) testsem$(EXE) testsprite$(EXE) testsprite2$(EXE) testtimer$(EXE) testver$(EXE) testvidinfo$(EXE) testwin$(EXE) testwm$(EXE) testwm2$(EXE) threadwin$(EXE) torturethread$(EXE) testloadso$(EXE) testhaptic$(EXE) testmmousetablet$(EXE)
|
||||
TARGETS = checkkeys$(EXE) graywin$(EXE) loopwave$(EXE) testresample$(EXE) testaudioinfo$(EXE) testmultiaudio$(EXE) testpower$(EXE) testalpha$(EXE) testbitmap$(EXE) testblitspeed$(EXE) testcdrom$(EXE) testcursor$(EXE) testintersections$(EXE) testdraw2$(EXE) testdyngl$(EXE) testdyngles$(EXE) testerror$(EXE) testfile$(EXE) testgamma$(EXE) testgl$(EXE) testgl2$(EXE) testgles$(EXE) testhread$(EXE) testiconv$(EXE) testjoystick$(EXE) testkeys$(EXE) testlock$(EXE) testoverlay2$(EXE) testoverlay$(EXE) testpalette$(EXE) testplatform$(EXE) testsem$(EXE) testsprite$(EXE) testsprite2$(EXE) testtimer$(EXE) testver$(EXE) testvidinfo$(EXE) testwin$(EXE) testwm$(EXE) testwm2$(EXE) threadwin$(EXE) torturethread$(EXE) testloadso$(EXE) testhaptic$(EXE) testmmousetablet$(EXE) testatomic$(EXE)
|
||||
|
||||
all: Makefile $(TARGETS)
|
||||
|
||||
|
@ -149,6 +149,9 @@ testhaptic$(EXE): $(srcdir)/testhaptic.c
|
|||
testmmousetablet$(EXE): $(srcdir)/testmmousetablet.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
||||
|
||||
testatomic$(EXE): $(srcdir)/testatomic.c
|
||||
$(CC) -o $@ $? $(CFLAGS) $(LIBS)
|
||||
|
||||
clean:
|
||||
rm -f $(TARGETS)
|
||||
|
||||
|
|
64
test/testatomic.c
Normal file
64
test/testatomic.c
Normal file
|
@ -0,0 +1,64 @@
|
|||
#include "SDL.h"
|
||||
|
||||
int
|
||||
main(int argc, char** argv)
|
||||
{
|
||||
int rv = 10;
|
||||
volatile int atomic;
|
||||
|
||||
SDL_atomic_int_set(&atomic, 10);
|
||||
if(SDL_atomic_int_get(&atomic) != 10)
|
||||
printf("Error: ");
|
||||
printf("SDL_atomic_int_set(atomic, 10): atomic-> %d\n",
|
||||
SDL_atomic_int_get(&atomic));
|
||||
|
||||
SDL_atomic_int_add(&atomic, 10);
|
||||
if(SDL_atomic_int_get(&atomic) != 20)
|
||||
printf("Error: ");
|
||||
printf("SDL_atomic_int_add(atomic, 10): atomic-> %d\n",
|
||||
SDL_atomic_int_get(&atomic));
|
||||
|
||||
rv = SDL_atomic_int_cmp_xchg(&atomic, 20, 30);
|
||||
if(rv != SDL_TRUE || SDL_atomic_int_get(&atomic) != 30)
|
||||
printf("Error: ");
|
||||
printf("SDL_atomic_int_cmp_xchg(atomic, 20, 30): rv-> %d, atomic-> %d\n",
|
||||
rv, SDL_atomic_int_get(&atomic));
|
||||
|
||||
rv = SDL_atomic_int_cmp_xchg(&atomic, 20, 30);
|
||||
if(rv != SDL_FALSE || SDL_atomic_int_get(&atomic) != 30)
|
||||
printf("Error: ");
|
||||
printf("SDL_atomic_int_cmp_xchg(atomic, 20, 40): rv-> %d, atomic-> %d\n",
|
||||
rv, SDL_atomic_int_get(&atomic));
|
||||
|
||||
rv = SDL_atomic_int_xchg_add(&atomic, 10);
|
||||
if(rv != 30 || SDL_atomic_int_get(&atomic) != 40)
|
||||
printf("Error: ");
|
||||
printf("SDL_atomic_int_xchg_add(atomic, 10): rv-> %d, atomic-> %d\n",
|
||||
rv, SDL_atomic_int_get(&atomic));
|
||||
|
||||
SDL_atomic_int_inc(&atomic);
|
||||
if(SDL_atomic_int_get(&atomic) != 41)
|
||||
printf("Error: ");
|
||||
printf("SDL_atomic_int_inc(atomic): atomic-> %d\n",
|
||||
SDL_atomic_int_get(&atomic));
|
||||
|
||||
rv = SDL_atomic_int_dec_test(&atomic);
|
||||
if(rv != SDL_FALSE || SDL_atomic_int_get(&atomic) != 40)
|
||||
printf("Error: ");
|
||||
printf("SDL_atomic_int_dec_test(atomic): rv-> %d, atomic-> %d\n",
|
||||
rv, SDL_atomic_int_get(&atomic));
|
||||
|
||||
SDL_atomic_int_set(&atomic, 1);
|
||||
if(SDL_atomic_int_get(&atomic) != 1)
|
||||
printf("Error: ");
|
||||
printf("SDL_atomic_int_set(atomic, 1): atomic-> %d\n",
|
||||
SDL_atomic_int_get(&atomic));
|
||||
|
||||
rv = SDL_atomic_int_dec_test(&atomic);
|
||||
if(rv != SDL_TRUE || SDL_atomic_int_get(&atomic) != 0)
|
||||
printf("Error: ");
|
||||
printf("SDL_atomic_int_dec_test(atomic): rv-> %d, atomic-> %d\n",
|
||||
rv, SDL_atomic_int_get(&atomic));
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue