Re: [PATCH 6/6] regulator: core: simplify lock_two()
From: Stephen Boyd
Date: Tue Aug 29 2023 - 16:53:04 EST
Quoting Michał Mirosław (2023-08-28 13:26:54)
> Indeed they are quite similar. I did remove a bit more code than that,
> though: in this case there is no early success return before the loop.
>
> Instead of saying:
>
> lock A
> lock B
> if ok return
> if that failed, loop:
> unlock A
> lock B harder
> lock A
> if ok return
> swap A <-> B
> lock B
>
> Now it's:
>
> lock A
> loop forever:
> lock B
> if ok, return
> unlock A
> swap them
> lock A harder
>
> With the same condition 'A held' at the start of an iteration.
>
Removing duplicate code is great! I'm primarily concerned with
readability. The terms 'A' and 'B' doesn't make it easy for me. Can you
maintain the 'held' and 'contended' names for the variables?
That would be
lock 'held'
loop forever:
lock 'contended'
if ok, return
unlock 'held'
swap them
lock 'held' harder
per the psuedo-code.