Adjust tests code for 'disclaim' feature
authorIvan Maidanski <ivmai@mail.ru>
Fri, 23 Sep 2011 15:17:20 +0000 (19:17 +0400)
committerIvan Maidanski <ivmai@mail.ru>
Fri, 23 Sep 2011 15:17:20 +0000 (19:17 +0400)
tests/disclaim_bench.c
tests/disclaim_test.c

index 2bdcaac..0386ffc 100644 (file)
@@ -23,6 +23,7 @@
 #include "atomic_ops.h"
 #include "gc_disclaim.h"
 
+// FIXME: skip test if AO_fetch_and_add1 not available
 static AO_t free_count = 0;
 
 typedef struct testobj_s *testobj_t;
@@ -31,7 +32,7 @@ struct testobj_s {
     int i;
 };
 
-void testobj_finalize(void *obj, void *carg)
+void GC_CALLBACK testobj_finalize(void *obj, void *carg)
 {
     AO_fetch_and_add1((AO_t *)carg);
     assert(((testobj_t)obj)->i++ == 109);
index 4bd4a1d..3bb175f 100644 (file)
@@ -32,7 +32,7 @@ struct pair_s {
     pair_t cdr;
 };
 
-void pair_dct(void *obj, void *cd)
+void GC_CALLBACK pair_dct(void *obj, void *cd)
 {
     pair_t p = obj;
     int checksum;
@@ -91,6 +91,7 @@ pair_check_rec(pair_t p)
 
 #ifdef GC_PTHREADS
 #  define THREAD_CNT 6
+#  include <pthread.h>
 #else
 #  define THREAD_CNT 1
 #endif
@@ -143,7 +144,7 @@ int main(void)
 #if THREAD_CNT > 1
     printf("Threaded disclaim test.\n");
     for (i = 0; i < THREAD_CNT; ++i) {
-        int err = GC_pthread_create(&th[i], NULL, test, NULL);
+        int err = pthread_create(&th[i], NULL, test, NULL);
         if (err) {
             fprintf(stderr, "Failed to create thread # %d: %s\n", i,
                     strerror(err));
@@ -151,7 +152,7 @@ int main(void)
         }
     }
     for (i = 0; i < THREAD_CNT; ++i) {
-        int err = GC_pthread_join(th[i], NULL);
+        int err = pthread_join(th[i], NULL);
         if (err) {
             fprintf(stderr, "Failed to join thread # %d: %s\n", i,
                     strerror(err));