On Wed, Jul 07, 2021 at 06:58:10PM +0200, Emanuele Giuseppe Esposito wrote: > @@ -406,15 +410,18 @@ void *job_create(const char *job_id, const JobDriver > *driver, JobTxn *txn, > error_setg(errp, "Invalid job ID '%s'", job_id); > return NULL; > } > - if (job_get(job_id)) { > - error_setg(errp, "Job ID '%s' already in use", job_id); > - return NULL; > - } > } else if (!(flags & JOB_INTERNAL)) { > error_setg(errp, "An explicit job ID is required"); > return NULL; > } > > + job_lock(); > + if (job_get(job_id)) { > + error_setg(errp, "Job ID '%s' already in use", job_id); > + job_unlock(); > + return NULL; > + } > +
Where is the matching job_unlock() in the success case? Please consider lock guard macros like QEMU_LOCK_GUARD()/WITH_QEMU_LOCK_GUARD() to prevent common errors.
signature.asc
Description: PGP signature