Ivan Ren <reny...@gmail.com> wrote: > When we 'migrate_cancel' a multifd migration, live_migration thread may > hung forever at some points, because of multifd_send_thread has already > exit for socket error: > 1. multifd_send_pages may hung at qemu_sem_wait(&multifd_send_state-> > channels_ready) > 2. multifd_send_sync_main my hung at qemu_sem_wait(&multifd_send_state-> > sem_sync) > > Signed-off-by: Ivan Ren <ivan...@tencent.com> > --- > + if (ret != 0) { > + if (flags & MULTIFD_FLAG_SYNC) { > + qemu_sem_post(&multifd_send_state->sem_sync);
flags is also needed. Sorry, Juan. > + } > + qemu_sem_post(&multifd_send_state->channels_ready); > + } > + > qemu_mutex_lock(&p->mutex); > p->running = false; > qemu_mutex_unlock(&p->mutex);