Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Detect/fix conflicting visibility and fix visibility wrt lua/java bindings
[simgrid.git] / src / mc / mc_base.cpp
index c24d0f2..74c8268 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2008-2014. The SimGrid Team.
+/* Copyright (c) 2008-2015. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
 #include "mc/mc_record.h"
 #include "mc/mc_replay.h"
 #include "mc/mc.h"
+#include "mc_protocol.h"
 
 #ifdef HAVE_MC
 #include "mc_process.h"
 #include "ModelChecker.hpp"
-#include "mc_protocol.h"
 #include "mc_smx.h"
 #include "mc_server.h"
 #endif
@@ -32,15 +32,11 @@ XBT_LOG_NEW_CATEGORY(mc, "All MC categories");
 
 int MC_random(int min, int max)
 {
-#ifdef HAVE_MC
   xbt_assert(mc_mode != MC_MODE_SERVER);
   /* TODO, if the MC is disabled we do not really need to make a simcall for
    * this :) */
   /* FIXME: return mc_current_state->executed_transition->random.value; */
   return simcall_mc_random(min, max);
-#else
-  return min;
-#endif
 }
 
 void MC_wait_for_requests(void)
@@ -146,6 +142,9 @@ int MC_request_is_enabled(smx_simcall_t req)
     return FALSE;
   }
 
+  case SIMCALL_MUTEX_TRYLOCK:
+    return TRUE;
+
   case SIMCALL_MUTEX_LOCK: {
     smx_mutex_t mutex = simcall_mutex_lock__get__mutex(req);
 #ifdef HAVE_MC
@@ -183,6 +182,7 @@ int MC_request_is_visible(smx_simcall_t req)
       || req->call == SIMCALL_COMM_TESTANY
       || req->call == SIMCALL_MC_RANDOM
       || req->call == SIMCALL_MUTEX_LOCK
+      || req->call == SIMCALL_MUTEX_TRYLOCK
 #ifdef HAVE_MC
       || req->call == SIMCALL_MC_SNAPSHOT
       || req->call == SIMCALL_MC_COMPARE_SNAPSHOTS