On Wed, Jul 07, 2021 at 06:58:09PM +0200, Emanuele Giuseppe Esposito wrote: > diff --git a/job.c b/job.c > index 872bbebb01..96fb8e9730 100644 > --- a/job.c > +++ b/job.c > @@ -32,6 +32,10 @@ > #include "trace/trace-root.h" > #include "qapi/qapi-events-job.h" > > +/* job_mutex protexts the jobs list, but also the job operations. */ > +static QemuMutex job_mutex;
It's unclear what protecting "job operations" means. I would prefer a
fine-grained per-job lock that protects the job's fields instead of a
global lock with an unclear scope.
> +
> +/* Protected by job_mutex */
> static QLIST_HEAD(, Job) jobs = QLIST_HEAD_INITIALIZER(jobs);
>
> /* Job State Transition Table */
> @@ -64,27 +68,22 @@ bool JobVerbTable[JOB_VERB__MAX][JOB_STATUS__MAX] = {
> /* Transactional group of jobs */
> struct JobTxn {
>
> - /* Is this txn being cancelled? */
> + /* Is this txn being cancelled? Atomic.*/
> bool aborting;
The comment says atomic but this field is not accessed using atomic
operations (at least at this point in the patch series)?
>
> - /* List of jobs */
> + /* List of jobs. Protected by job_mutex. */
> QLIST_HEAD(, Job) jobs;
>
> - /* Reference count */
> + /* Reference count. Atomic. */
> int refcnt;
Same.
signature.asc
Description: PGP signature
