Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Disable parallel executions with non-thread contexts under Tsan.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Mon, 24 Sep 2018 09:03:37 +0000 (11:03 +0200)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Mon, 24 Sep 2018 09:08:14 +0000 (11:08 +0200)
Raw/boot/sysv contexts lead to incomprehensible errors (segmentation fault, timeout).

examples/msg/CMakeLists.txt
teshsuite/msg/CMakeLists.txt

index 219a3db..c59540c 100644 (file)
@@ -77,11 +77,19 @@ foreach (x trace-categories trace-route-user-variables trace-link-user-variables
                    ${CMAKE_HOME_DIRECTORY}/examples/msg/${x}/${x}.tesh)
 endforeach()
 
                    ${CMAKE_HOME_DIRECTORY}/examples/msg/${x}/${x}.tesh)
 endforeach()
 
-ADD_TESH_FACTORIES(msg-dht-kademlia-parallel "thread;ucontext;raw;boost" --cfg contexts/nthreads:4 ${CONTEXTS_SYNCHRO} 
-                                             --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/dht-kademlia 
-                                            --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg/dht-kademlia
-                                            --setenv platfdir=${CMAKE_HOME_DIRECTORY}/examples/platforms
-                                            ${CMAKE_HOME_DIRECTORY}/examples/msg/dht-kademlia/dht-kademlia.tesh)
+if(HAVE_SANITIZER_THREAD)
+  ADD_TESH_FACTORIES(msg-dht-kademlia-parallel "thread" --cfg contexts/nthreads:4 ${CONTEXTS_SYNCHRO}
+                                               --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/dht-kademlia
+                                               --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg/dht-kademlia
+                                               --setenv platfdir=${CMAKE_HOME_DIRECTORY}/examples/platforms
+                                               ${CMAKE_HOME_DIRECTORY}/examples/msg/dht-kademlia/dht-kademlia.tesh)
+else()
+  ADD_TESH_FACTORIES(msg-dht-kademlia-parallel "thread;ucontext;raw;boost" --cfg contexts/nthreads:4 ${CONTEXTS_SYNCHRO}
+                                               --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/dht-kademlia
+                                               --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg/dht-kademlia
+                                               --setenv platfdir=${CMAKE_HOME_DIRECTORY}/examples/platforms
+                                               ${CMAKE_HOME_DIRECTORY}/examples/msg/dht-kademlia/dht-kademlia.tesh)
+endif()
 
 if(NOT WIN32)
   ADD_TESH_FACTORIES(msg-maestro-set   "thread" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/maestro-set/maestro-set.tesh)
 
 if(NOT WIN32)
   ADD_TESH_FACTORIES(msg-maestro-set   "thread" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/maestro-set/maestro-set.tesh)
index 0fe9750..8cc7fa6 100644 (file)
@@ -102,4 +102,8 @@ foreach(x cloud-sharing)
   ADD_TESH(tesh-msg-${x} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/msg/${x} --setenv platfdir=${CMAKE_HOME_DIRECTORY}/examples/platforms --cd ${CMAKE_BINARY_DIR}/teshsuite/msg/${x} ${CMAKE_HOME_DIRECTORY}/teshsuite/msg/${x}/${x}.tesh)
 endforeach()
 
   ADD_TESH(tesh-msg-${x} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/msg/${x} --setenv platfdir=${CMAKE_HOME_DIRECTORY}/examples/platforms --cd ${CMAKE_BINARY_DIR}/teshsuite/msg/${x} ${CMAKE_HOME_DIRECTORY}/teshsuite/msg/${x}/${x}.tesh)
 endforeach()
 
-ADD_TESH_FACTORIES(tesh-app-bittorrent-parallel         "raw" --cfg contexts/nthreads:4 ${CONTEXTS_SYNCHRO} --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/msg/app-bittorrent --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/platforms --setenv platfdir=${CMAKE_HOME_DIRECTORY}/examples/platforms --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/msg/app-bittorrent app-bittorrent.tesh)
+if(HAVE_SANITIZER_THREAD)
+  ADD_TESH_FACTORIES(tesh-app-bittorrent-parallel       "thread" --cfg contexts/nthreads:4 ${CONTEXTS_SYNCHRO} --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/msg/app-bittorrent --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/platforms --setenv platfdir=${CMAKE_HOME_DIRECTORY}/examples/platforms --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/msg/app-bittorrent app-bittorrent.tesh)
+else()
+  ADD_TESH_FACTORIES(tesh-app-bittorrent-parallel       "raw" --cfg contexts/nthreads:4 ${CONTEXTS_SYNCHRO} --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/msg/app-bittorrent --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/platforms --setenv platfdir=${CMAKE_HOME_DIRECTORY}/examples/platforms --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/msg/app-bittorrent app-bittorrent.tesh)
+endif()