Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
convert xbt_ex(timeout_error) catching locations to TimeoutError
authorMartin Quinson <martin.quinson@loria.fr>
Sat, 25 Aug 2018 21:38:15 +0000 (23:38 +0200)
committerMartin Quinson <martin.quinson@loria.fr>
Sat, 25 Aug 2018 22:57:49 +0000 (00:57 +0200)
examples/s4u/app-bittorrent/s4u-peer.cpp
examples/s4u/dht-chord/s4u-dht-chord-node.cpp
examples/s4u/platform-failures/s4u-platform-failures.cpp
src/msg/msg_gos.cpp

index 71a98e3..0a1ac9f 100644 (file)
@@ -91,12 +91,10 @@ bool Peer::getPeersFromTracker()
   try {
     XBT_DEBUG("Sending a peer request to the tracker.");
     tracker_mailbox->put(peer_request, TRACKER_COMM_SIZE, GET_PEERS_TIMEOUT);
-  } catch (xbt_ex& e) {
-    if (e.category == timeout_error) {
-      XBT_DEBUG("Timeout expired when requesting peers to tracker");
-      delete peer_request;
-      return false;
-    }
+  } catch (simgrid::TimeoutError& e) {
+    XBT_DEBUG("Timeout expired when requesting peers to tracker");
+    delete peer_request;
+    return false;
   }
 
   try {
@@ -106,11 +104,9 @@ bool Peer::getPeersFromTracker()
       if (id != peer_id)
         connected_peers[peer_id] = new Connection(peer_id);
     delete answer;
-  } catch (xbt_ex& e) {
-    if (e.category == timeout_error) {
-      XBT_DEBUG("Timeout expired when requesting peers to tracker");
-      return false;
-    }
+  } catch (simgrid::TimeoutError& e) {
+    XBT_DEBUG("Timeout expired when requesting peers to tracker");
+    return false;
   }
   return true;
 }
index f535b31..cc7ccec 100644 (file)
@@ -118,11 +118,9 @@ void Node::notifyAndQuit()
   XBT_DEBUG("Sending a 'PREDECESSOR_LEAVING' to my successor %d", fingers_[0]);
   try {
     simgrid::s4u::Mailbox::by_name(std::to_string(fingers_[0]))->put(pred_msg, 10, timeout);
-  } catch (xbt_ex& e) {
-    if (e.category == timeout_error) {
-      XBT_DEBUG("Timeout expired when sending a 'PREDECESSOR_LEAVING' to my successor %d", fingers_[0]);
-      delete pred_msg;
-    }
+  } catch (simgrid::TimeoutError& e) {
+    XBT_DEBUG("Timeout expired when sending a 'PREDECESSOR_LEAVING' to my successor %d", fingers_[0]);
+    delete pred_msg;
   }
 
   if (pred_id_ != -1 && pred_id_ != id_) {
@@ -134,11 +132,9 @@ void Node::notifyAndQuit()
 
     try {
       simgrid::s4u::Mailbox::by_name(std::to_string(pred_id_))->put(succ_msg, 10, timeout);
-    } catch (xbt_ex& e) {
-      if (e.category == timeout_error) {
-        XBT_DEBUG("Timeout expired when sending a 'SUCCESSOR_LEAVING' to my predecessor %d", pred_id_);
-        delete succ_msg;
-      }
+    } catch (simgrid::TimeoutError& e) {
+      XBT_DEBUG("Timeout expired when sending a 'SUCCESSOR_LEAVING' to my predecessor %d", pred_id_);
+      delete succ_msg;
     }
   }
 }
@@ -226,13 +222,12 @@ void Node::checkPredecessor()
   XBT_DEBUG("Sending a 'Predecessor Alive' request to my predecessor %d", pred_id_);
   try {
     mailbox->put(message, 10, timeout);
-  } catch (xbt_ex& e) {
-    if (e.category == timeout_error) {
-      XBT_DEBUG("Failed to send the 'Predecessor Alive' request to %d", pred_id_);
-      delete message;
-      return;
-    }
+  } catch (simgrid::TimeoutError& e) {
+    XBT_DEBUG("Failed to send the 'Predecessor Alive' request to %d", pred_id_);
+    delete message;
+    return;
   }
+
   // receive the answer
   XBT_DEBUG("Sent 'Predecessor Alive' request to %d, waiting for the answer on my mailbox '%s'", pred_id_,
             message->answer_to->get_cname());
@@ -242,11 +237,9 @@ void Node::checkPredecessor()
     comm->wait_for(timeout);
     XBT_DEBUG("Received the answer to my 'Predecessor Alive': my predecessor %d is alive", pred_id_);
     delete static_cast<ChordMessage*>(data);
-  } catch (xbt_ex& e) {
-    if (e.category == timeout_error) {
-      XBT_DEBUG("Failed to receive the answer to my 'Predecessor Alive' request");
-      pred_id_ = -1;
-    }
+  } catch (simgrid::TimeoutError& e) {
+    XBT_DEBUG("Failed to receive the answer to my 'Predecessor Alive' request");
+    pred_id_ = -1;
   }
 }
 
@@ -270,12 +263,10 @@ int Node::remoteGetPredecessor(int ask_to)
   XBT_DEBUG("Sending a 'Get Predecessor' request to %d", ask_to);
   try {
     mailbox->put(message, 10, timeout);
-  } catch (xbt_ex& e) {
-    if (e.category == timeout_error) {
-      XBT_DEBUG("Failed to send the 'Get Predecessor' request to %d", ask_to);
-      delete message;
-      return predecessor_id;
-    }
+  } catch (simgrid::TimeoutError& e) {
+    XBT_DEBUG("Failed to send the 'Get Predecessor' request to %d", ask_to);
+    delete message;
+    return predecessor_id;
   }
 
   // receive the answer
@@ -290,11 +281,9 @@ int Node::remoteGetPredecessor(int ask_to)
               answer->answer_id);
     predecessor_id = answer->answer_id;
     delete answer;
-  } catch (xbt_ex& e) {
-    if (e.category == timeout_error) {
-      XBT_DEBUG("Failed to receive the answer to my 'Get Predecessor' request");
-      delete static_cast<ChordMessage*>(data);
-    }
+  } catch (simgrid::TimeoutError& e) {
+    XBT_DEBUG("Failed to receive the answer to my 'Get Predecessor' request");
+    delete static_cast<ChordMessage*>(data);
   }
 
   return predecessor_id;
@@ -346,12 +335,10 @@ int Node::remoteFindSuccessor(int ask_to, int id)
   XBT_DEBUG("Sending a 'Find Successor' request to %d for id %d", ask_to, id);
   try {
     mailbox->put(message, 10, timeout);
-  } catch (xbt_ex& e) {
-    if (e.category == timeout_error) {
-      XBT_DEBUG("Failed to send the 'Find Successor' request to %d for id %d", ask_to, id_);
-      delete message;
-      return successor;
-    }
+  } catch (simgrid::TimeoutError& e) {
+    XBT_DEBUG("Failed to send the 'Find Successor' request to %d for id %d", ask_to, id_);
+    delete message;
+    return successor;
   }
   // receive the answer
   XBT_DEBUG("Sent a 'Find Successor' request to %d for key %d, waiting for the answer", ask_to, id);
@@ -364,12 +351,11 @@ int Node::remoteFindSuccessor(int ask_to, int id)
               answer->request_id, id_, answer->answer_id);
     successor = answer->answer_id;
     delete answer;
-  } catch (xbt_ex& e) {
-    if (e.category == timeout_error) {
-      XBT_DEBUG("Failed to receive the answer to my 'Find Successor' request");
-      delete static_cast<ChordMessage*>(data);
-    }
+  } catch (simgrid::TimeoutError& e) {
+    XBT_DEBUG("Failed to receive the answer to my 'Find Successor' request");
+    delete static_cast<ChordMessage*>(data);
   }
+
   return successor;
 }
 
index fd71092..c7a6378 100644 (file)
@@ -30,14 +30,14 @@ static int master(int argc, char* argv[])
     } catch (simgrid::HostFailureException& e) {
       XBT_INFO("Gloups. The cpu on which I'm running just turned off!. See you!");
       return -1;
+    } catch (simgrid::TimeoutError& e) {
+      delete payload;
+      XBT_INFO("Mmh. Got timeouted while speaking to '%s'. Nevermind. Let's keep going!", mailbox->get_cname());
     } catch (xbt_ex& e) {
       switch (e.category) {
         case network_error:
           XBT_INFO("Mmh. Something went wrong with '%s'. Nevermind. Let's keep going!", mailbox->get_cname());
           break;
-        case timeout_error:
-          XBT_INFO("Mmh. Got timeouted while speaking to '%s'. Nevermind. Let's keep going!", mailbox->get_cname());
-          break;
         default:
           xbt_die("Unexpected behavior");
       }
@@ -56,15 +56,15 @@ static int master(int argc, char* argv[])
       delete payload;
       XBT_INFO("Gloups. The cpu on which I'm running just turned off!. See you!");
       return -1;
+    } catch (simgrid::TimeoutError& e) {
+      delete payload;
+      XBT_INFO("Mmh. Got timeouted while speaking to '%s'. Nevermind. Let's keep going!", mailbox->get_cname());
     } catch (xbt_ex& e) {
       delete payload;
       switch (e.category) {
         case network_error:
           XBT_INFO("Mmh. Something went wrong with '%s'. Nevermind. Let's keep going!", mailbox->get_cname());
           break;
-        case timeout_error:
-          XBT_INFO("Mmh. Got timeouted while speaking to '%s'. Nevermind. Let's keep going!", mailbox->get_cname());
-          break;
         default:
           xbt_die("Unexpected behavior");
       }
index f698102..65b7809 100644 (file)
@@ -80,14 +80,13 @@ msg_error_t MSG_parallel_task_execute_with_timeout(msg_task_t task, double timeo
     XBT_DEBUG("Execution task '%s' finished in state %d", task->name, (int)comp_state);
   } catch (simgrid::HostFailureException& e) {
     status = MSG_HOST_FAILURE;
+  } catch (simgrid::TimeoutError& e) {
+    status = MSG_TIMEOUT;
   } catch (xbt_ex& e) {
     switch (e.category) {
     case cancel_error:
       status = MSG_TASK_CANCELED;
       break;
-    case timeout_error:
-      status = MSG_TIMEOUT;
-      break;
     default:
       throw;
     }
@@ -280,6 +279,8 @@ msg_error_t MSG_task_receive_ext_bounded(msg_task_t * task, const char *alias, d
     (*task)->simdata->setNotUsed();
   } catch (simgrid::HostFailureException& e) {
     ret = MSG_HOST_FAILURE;
+  } catch (simgrid::TimeoutError& e) {
+    ret = MSG_TIMEOUT;
   } catch (xbt_ex& e) {
     switch (e.category) {
     case cancel_error:
@@ -288,9 +289,6 @@ msg_error_t MSG_task_receive_ext_bounded(msg_task_t * task, const char *alias, d
     case network_error:
       ret = MSG_TRANSFER_FAILURE;
       break;
-    case timeout_error:
-      ret = MSG_TIMEOUT;
-      break;
     default:
       throw;
     }
@@ -482,6 +480,9 @@ int MSG_comm_test(msg_comm_t comm)
       /* I am the receiver */
       (*comm->task_received)->simdata->setNotUsed();
     }
+  } catch (simgrid::TimeoutError& e) {
+    comm->status = MSG_TIMEOUT;
+    finished     = true;
   }
   catch (xbt_ex& e) {
     switch (e.category) {
@@ -489,10 +490,6 @@ int MSG_comm_test(msg_comm_t comm)
         comm->status = MSG_TRANSFER_FAILURE;
         finished     = true;
         break;
-      case timeout_error:
-        comm->status = MSG_TIMEOUT;
-        finished     = true;
-        break;
       default:
         throw;
     }
@@ -524,6 +521,9 @@ int MSG_comm_testany(xbt_dynar_t comms)
   msg_error_t status = MSG_OK;
   try {
     finished_index = simcall_comm_testany(s_comms.data(), s_comms.size());
+  } catch (simgrid::TimeoutError& e) {
+    finished_index = e.value;
+    status         = MSG_TIMEOUT;
   }
   catch (xbt_ex& e) {
     switch (e.category) {
@@ -531,10 +531,6 @@ int MSG_comm_testany(xbt_dynar_t comms)
         finished_index = e.value;
         status = MSG_TRANSFER_FAILURE;
         break;
-      case timeout_error:
-        finished_index = e.value;
-        status = MSG_TIMEOUT;
-        break;
       default:
         throw;
     }
@@ -583,15 +579,14 @@ msg_error_t MSG_comm_wait(msg_comm_t comm, double timeout)
     }
 
     /* FIXME: these functions are not traceable */
+  } catch (simgrid::TimeoutError& e) {
+    comm->status = MSG_TIMEOUT;
   }
   catch (xbt_ex& e) {
     switch (e.category) {
     case network_error:
       comm->status = MSG_TRANSFER_FAILURE;
       break;
-    case timeout_error:
-      comm->status = MSG_TIMEOUT;
-      break;
     default:
       throw;
     }
@@ -637,6 +632,9 @@ int MSG_comm_waitany(xbt_dynar_t comms)
   msg_error_t status = MSG_OK;
   try {
     finished_index = simcall_comm_waitany(s_comms, -1);
+  } catch (simgrid::TimeoutError& e) {
+    finished_index = e.value;
+    status         = MSG_TIMEOUT;
   }
   catch(xbt_ex& e) {
     switch (e.category) {
@@ -644,10 +642,6 @@ int MSG_comm_waitany(xbt_dynar_t comms)
         finished_index = e.value;
         status = MSG_TRANSFER_FAILURE;
         break;
-      case timeout_error:
-        finished_index = e.value;
-        status = MSG_TIMEOUT;
-        break;
       default:
         throw;
     }
@@ -796,6 +790,8 @@ msg_error_t MSG_task_send_with_timeout(msg_task_t task, const char *alias, doubl
       simcall_set_category(comm, task->category);
     t_simdata->comm = boost::static_pointer_cast<simgrid::kernel::activity::CommImpl>(comm);
     simcall_comm_wait(comm, timeout);
+  } catch (simgrid::TimeoutError& e) {
+    ret = MSG_TIMEOUT;
   }
   catch (xbt_ex& e) {
     switch (e.category) {
@@ -805,9 +801,6 @@ msg_error_t MSG_task_send_with_timeout(msg_task_t task, const char *alias, doubl
     case network_error:
       ret = MSG_TRANSFER_FAILURE;
       break;
-    case timeout_error:
-      ret = MSG_TIMEOUT;
-      break;
     default:
       throw;
     }