Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Remove useless wrapper around pthread_atfork().
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Wed, 16 Jan 2019 10:29:12 +0000 (11:29 +0100)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Wed, 16 Jan 2019 16:53:21 +0000 (17:53 +0100)
include/xbt/xbt_os_thread.h
src/xbt/mmalloc/mm_module.c
src/xbt/mmalloc/mmprivate.h
src/xbt/xbt_os_thread.c

index 95a3377..a1c4de9 100644 (file)
@@ -11,8 +11,6 @@
 #include <xbt/base.h>
 #include <xbt/function_types.h>
 
-#include <pthread.h>
-
 SG_BEGIN_DECL()
 
 /** @addtogroup XBT_thread
@@ -24,8 +22,6 @@ SG_BEGIN_DECL()
  *  @{
  */
 
-XBT_PUBLIC int xbt_os_thread_atfork(void (*prepare)(void), void (*parent)(void), void (*child)(void));
-
 /** @brief Thread mutex data type (opaque structure) */
 typedef struct xbt_os_mutex_ *xbt_os_mutex_t;
 XBT_PUBLIC xbt_os_mutex_t xbt_os_mutex_init(void);
index a2bfb2b..1782059 100644 (file)
@@ -327,9 +327,9 @@ void *mmalloc_preinit(void)
     /* 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
-    int res = xbt_os_thread_atfork(mmalloc_fork_prepare, mmalloc_fork_parent, mmalloc_fork_child);
+    int res = pthread_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);
+      THROWF(system_error, 0, "pthread_atfork() failed: return value %d", res);
   }
   xbt_assert(__mmalloc_default_mdp != NULL);
 
index c05e9e3..9784131 100644 (file)
@@ -18,7 +18,6 @@
 
 #include "swag.h"
 #include "src/internal_config.h"
-#include "xbt/xbt_os_thread.h"
 #include "xbt/mmalloc.h"
 #include "xbt/ex.h"
 #include "xbt/dynar.h"
index 270af96..dc72329 100644 (file)
@@ -44,19 +44,6 @@ typedef struct xbt_os_thread_ {
   pvoid_f_pvoid_t start_routine;
 } s_xbt_os_thread_t;
 
-/** Calls pthread_atfork() if present, and raise an exception otherwise.
- *
- * The only known user of this wrapper is mmalloc_preinit(), but it is absolutely mandatory there:
- * when used with tesh, mmalloc *must* be mutex protected and resistant to forks.
- * This functionality is the only way to get it working (by ensuring that the mutex is consistently released on forks)
- */
-
-/* this function is critical to tesh+mmalloc, don't mess with it */
-int xbt_os_thread_atfork(void (*prepare)(void), void (*parent)(void), void (*child)(void))
-{
-  return pthread_atfork(prepare, parent, child);
-}
-
 /****** mutex related functions ******/
 typedef struct xbt_os_mutex_ {
   pthread_mutex_t m;