[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 3/5] migration: Don't wait in semaphore for thread we know has
From: |
Juan Quintela |
Subject: |
[PATCH v3 3/5] migration: Don't wait in semaphore for thread we know has finished |
Date: |
Thu, 16 Jan 2020 16:46:14 +0100 |
If p->quit is true for any channel, we know that it has finished for
any reason. So don't wait for it, just continue.
Signed-off-by: Juan Quintela <address@hidden>
---
I could be convinced that the right thing to do in that case is to
just do a break instead of a continue. Each option has its own
advantages/disadvantanges.
---
migration/ram.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/migration/ram.c b/migration/ram.c
index 44ca56e1ea..bc918ef28d 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -1118,6 +1118,12 @@ static void multifd_send_sync_main(RAMState *rs)
MultiFDSendParams *p = &multifd_send_state->params[i];
trace_multifd_send_sync_main_wait(p->id);
+ qemu_mutex_lock(&p->mutex);
+ if (p->quit) {
+ qemu_mutex_unlock(&p->mutex);
+ continue;
+ }
+ qemu_mutex_unlock(&p->mutex);
qemu_sem_wait(&p->sem_sync);
}
trace_multifd_send_sync_main(multifd_send_state->packet_num);
--
2.24.1