view test/testatomic.c @ 3200:ef2c029a3a9d

First draft of atomic operations code for GCC and linux.
author Bob Pendleton <bob@pendleton.com>
date Wed, 24 Jun 2009 20:20:57 +0000
parents 3e1bf2b8bd81
children c297230efc75
line wrap: on
line source

#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;
}