2009-10-04 09:55:20 +00:00
|
|
|
#include <stdio.h>
|
2009-06-09 17:33:44 +00:00
|
|
|
#include "SDL.h"
|
|
|
|
|
2009-06-24 22:24:23 +00:00
|
|
|
/*
|
2009-06-29 19:54:43 +00:00
|
|
|
Absolutely basic tests just to see if we get the expected value
|
|
|
|
after calling each function.
|
2009-06-24 22:24:23 +00:00
|
|
|
*/
|
|
|
|
|
2009-10-04 09:55:20 +00:00
|
|
|
char *
|
2009-06-29 19:54:43 +00:00
|
|
|
tf(SDL_bool tf)
|
|
|
|
{
|
2011-01-15 12:41:59 -08:00
|
|
|
static char *t = "TRUE";
|
|
|
|
static char *f = "FALSE";
|
2009-06-29 19:54:43 +00:00
|
|
|
|
2011-01-15 12:41:59 -08:00
|
|
|
if (tf)
|
|
|
|
{
|
|
|
|
return t;
|
|
|
|
}
|
2009-06-29 19:54:43 +00:00
|
|
|
|
2011-01-15 12:41:59 -08:00
|
|
|
return f;
|
2009-06-29 19:54:43 +00:00
|
|
|
}
|
2009-10-04 09:55:20 +00:00
|
|
|
|
2009-06-09 17:33:44 +00:00
|
|
|
int
|
2009-09-23 02:52:11 +00:00
|
|
|
main(int argc, char *argv[])
|
2009-06-09 17:33:44 +00:00
|
|
|
{
|
2011-01-15 12:41:59 -08:00
|
|
|
int value;
|
|
|
|
SDL_SpinLock lock = 0;
|
|
|
|
|
|
|
|
SDL_bool tfret = SDL_FALSE;
|
|
|
|
|
|
|
|
printf("\nspin lock---------------------------------------\n\n");
|
|
|
|
|
|
|
|
SDL_AtomicLock(&lock);
|
|
|
|
printf("AtomicLock lock=%d\n", lock);
|
|
|
|
SDL_AtomicUnlock(&lock);
|
|
|
|
printf("AtomicUnlock lock=%d\n", lock);
|
|
|
|
|
|
|
|
printf("\natomic -----------------------------------------\n\n");
|
|
|
|
|
|
|
|
SDL_atomic_t v;
|
|
|
|
|
|
|
|
SDL_AtomicSet(&v, 0);
|
|
|
|
tfret = SDL_AtomicSet(&v, 10) == 0;
|
|
|
|
printf("AtomicSet(10) tfret=%s val=%"PRIu32"\n", tf(tfret), SDL_AtomicGet(&v));
|
|
|
|
tfret = SDL_AtomicAdd(&v, 10) == 10;
|
|
|
|
printf("AtomicAdd(10) tfret=%s val=%"PRIu32"\n", tf(tfret), SDL_AtomicGet(&v));
|
|
|
|
|
|
|
|
SDL_AtomicSet(&v, 0);
|
|
|
|
SDL_AtomicIncRef(&v);
|
|
|
|
tfret = (SDL_AtomicGet(&v) == 1);
|
|
|
|
printf("AtomicIncRef() tfret=%s val=%"PRIu32"\n", tf(tfret), SDL_AtomicGet(&v));
|
|
|
|
SDL_AtomicIncRef(&v);
|
|
|
|
tfret = (SDL_AtomicGet(&v) == 2);
|
|
|
|
printf("AtomicIncRef() tfret=%s val=%"PRIu32"\n", tf(tfret), SDL_AtomicGet(&v));
|
|
|
|
tfret = (SDL_AtomicDecRef(&v) == SDL_FALSE);
|
|
|
|
printf("AtomicDecRef() tfret=%s val=%"PRIu32"\n", tf(tfret), SDL_AtomicGet(&v));
|
|
|
|
tfret = (SDL_AtomicDecRef(&v) == SDL_TRUE);
|
|
|
|
printf("AtomicDecRef() tfret=%s val=%"PRIu32"\n", tf(tfret), SDL_AtomicGet(&v));
|
|
|
|
|
|
|
|
SDL_AtomicSet(&v, 10);
|
|
|
|
tfret = (SDL_AtomicCAS(&v, 0, 20) != 0);
|
|
|
|
printf("AtomicCAS() tfret=%s val=%"PRIu32"\n", tf(tfret), SDL_AtomicGet(&v));
|
|
|
|
value = SDL_AtomicGet(&v);
|
|
|
|
tfret = (SDL_AtomicCAS(&v, value, 20) == value);
|
|
|
|
printf("AtomicCAS() tfret=%s val=%"PRIu32"\n", tf(tfret), SDL_AtomicGet(&v));
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|