On 2018-08-30 03:57, John Snow wrote: > This is part one of a two part series that refactors the exit logic > of jobs. > > Part one removes job_defer_to_main_loop. > Part two removes the job->exit() callback introduced in part one. > > It's redundant to have each job manage deferring to the main loop > itself. Unifying this makes sense from an API standpoint. > Doing so also allows us to remove a tricky case where the completion > code is called under an aio_context lock, which then calls the > finalization code which is itself executed under a second aio_context > lock, leading to deadlocks. > > Removing this recursive lock acquisition is necessary for converting > mirror to only modify its graph post-finalization, but it's also just > safer and will bite us less in the future. > > This series introduces a job->exit callback, but after jobs are > fully transitioned to using the .commit/.abort callbacks in Pt 2, > this new completion callback will be removed again. It's only here > as a crutch to let us investigate the completion refactoring in Pt 2 > more carefully.
Thanks, dropped the superfluous g_strdup() in patch 2 and applied to my block branch: https://git.xanclic.moe/XanClic/qemu/commits/branch/block Max
signature.asc
Description: OpenPGP digital signature