[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC PATCH 3/6] job: minor changes to simplify locking
From: |
Stefan Hajnoczi |
Subject: |
Re: [RFC PATCH 3/6] job: minor changes to simplify locking |
Date: |
Thu, 8 Jul 2021 11:55:01 +0100 |
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