Fabiano Rosas <faro...@suse.de> wrote: > Juan Quintela <quint...@redhat.com> writes: > >> Fabiano Rosas <faro...@suse.de> wrote: >>> We don't need to check p->quit in the multifd_send_thread() because it >>> is shadowed by the 'exiting' flag. Ever since that flag was added >>> p->quit became obsolete as a way to stop the thread. >>> >>> Since p->quit is set at multifd_send_terminate_threads() under the >>> p->mutex lock, the thread will only see it once it loops, so 'exiting' >>> will always be seen first. >>> >>> Note that setting p->quit at multifd_send_terminate_threads() still >>> makes sense because we need a way to inform multifd_send_pages() that >>> the channel has stopped. >>> >>> Signed-off-by: Fabiano Rosas <faro...@suse.de> >> >> Reviewed-by: Juan Quintela <quint...@redhat.com> >> >> But then should we remove the quit altogether? >> > > It still serves a purpose to allow multifd_send_pages() to see that the > channel has exited. While that function does also check > multifd_send_state->exiting, it could already be waiting at the mutex > when the channel aborts. So we need to either check 'exiting' again or > keep p->quit.
At the point that we are putting p->quit = true, we are really next to where we put p->running = false. I think we can move to use only p->running. Later, Juan.