- __mmalloc_default_mdp = xbt_mheap_new(-1, addr);
- /* Fixme? only the default mdp in protected against forks */
- // This is mandated to protect the mmalloced areas through forks. Think of tesh.
- // Nah, removing the mutex isn't a good idea either for tesh
- res = xbt_os_thread_atfork(mmalloc_fork_prepare,
- mmalloc_fork_parent, mmalloc_fork_child);
- if (res != 0)
- THROWF(system_error,0,"xbt_os_thread_atfork() failed: return value %d",res);
+ __mmalloc_default_mdp = xbt_mheap_new_options(-1, addr, XBT_MHEAP_OPTION_MEMSET);
+
+ // atfork mandated at least on FreeBSD, or simgrid-mc will fail to fork the verified app
+ int res = pthread_atfork(mmalloc_fork_prepare, mmalloc_fork_parent, mmalloc_fork_child);
+ xbt_assert(res == 0, "pthread_atfork() failed: return value %d", res);