summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2012-02-24 08:29:48 +0100
committerIvan Maidanski <ivmai@mail.ru>2012-02-24 12:08:18 +0100
commitf5af75622d75534e34d2739d3f638c429e993691 (patch)
tree904ba4f2d5b5b16196bfd7cc711d7f3de443dc24 /tests
parent8bdc924d4ec8c482c46b720eec011ca062e6fcfd (diff)
Fix fork() handling for Darwin partially
(still not handled well for Darwin if GC incremental mode is on) * os_dep.c (GC_dirty_init): Add FIXME regarding fork (Darwin). * pthread_support.c (GC_remove_all_threads_but_me): Update mach_thread for "me" (Darwin). * pthread_support.c (GC_fork_prepare_proc): Output warning if GC_dirty_maintained (if DARWIN and MPROTECT_VDB). * pthread_support.c (GC_fork_prepare_proc, GC_fork_child_proc): Add FIXME (for Darwin). * tests/test.c (run_one_test): Do not test fork() for Darwin with incremental mode on (if HANDLE_FORK); add FIXME.
Diffstat (limited to 'tests')
-rw-r--r--tests/test.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/tests/test.c b/tests/test.c
index dbe0af3..70d7733 100644
--- a/tests/test.c
+++ b/tests/test.c
@@ -1238,7 +1238,11 @@ void run_one_test(void)
/* GC_allocate_ml and GC_need_to_lock are no longer exported, and */
/* AO_fetch_and_add1() may be unavailable to update a counter. */
(void)GC_call_with_alloc_lock(inc_int_counter, &n_tests);
-# if defined(THREADS) && defined(HANDLE_FORK)
+# if defined(THREADS) && defined(HANDLE_FORK) \
+ && (!defined(DARWIN) || !defined(MPROTECT_VDB) \
+ || defined(NO_INCREMENTAL) || defined(MAKE_BACK_GRAPH))
+ /* FIXME: fork() is not tested on Darwin if incremental mode */
+ /* is on for now (till it would be handled properly). */
if (fork() == 0) {
GC_gcollect();
tiny_reverse_test(0);