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
