From 703491c73356d67f22f27d546cc95be7e83fcb0a Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Thu, 6 Feb 2020 09:29:39 +0100 Subject: [PATCH] Simplify logic. --- src/plugins/vm/VmLiveMigration.cpp | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/plugins/vm/VmLiveMigration.cpp b/src/plugins/vm/VmLiveMigration.cpp index 43f2629a5e..b401915585 100644 --- a/src/plugins/vm/VmLiveMigration.cpp +++ b/src/plugins/vm/VmLiveMigration.cpp @@ -101,18 +101,15 @@ sg_size_t MigrationTx::sendMigrationData(sg_size_t size, int stage, int stage2_r double clock_sta = s4u::Engine::get_clock(); - s4u::Activity* comm = nullptr; + s4u::CommPtr comm = mbox->put_init(msg, size); + if (mig_speed > 0) + comm->set_rate(mig_speed); try { - if (mig_speed > 0) - comm = mbox->put_init(msg, size)->set_rate(mig_speed)->wait_for(timeout); - else - comm = mbox->put_async(msg, size)->wait_for(timeout); - } catch (const Exception&) { - if (comm) { - sg_size_t remaining = static_cast(comm->get_remaining()); - XBT_VERB("timeout (%lf s) in sending_migration_data, remaining %llu bytes of %llu", timeout, remaining, size); - sent -= remaining; - } + comm->wait_for(timeout); + } catch (const simgrid::TimeoutException&) { + sg_size_t remaining = static_cast(comm->get_remaining()); + XBT_VERB("timeout (%lf s) in sending_migration_data, remaining %llu bytes of %llu", timeout, remaining, size); + sent -= remaining; delete msg; } -- 2.20.1