* pthread_support.c (GC_atfork_prepare): Abort if GC_dirty_maintained
is set for Darwin (only if MPROTECT_VDB) since graceful suspend/resume
of mprotect_thread is unsupported at present.
/* Routines for fork handling by client (no-op if pthread_atfork works). */
GC_API void GC_CALL GC_atfork_prepare(void)
{
+# if defined(GC_DARWIN_THREADS) && defined(MPROTECT_VDB)
+ if (GC_dirty_maintained) {
+ GC_ASSERT(0 == GC_handle_fork);
+ ABORT("Unable to fork while mprotect_thread is running");
+ }
+# endif
if (GC_handle_fork <= 0)
fork_prepare_proc();
}