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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to