useless-with-lock (PLW2101)
Added in 0.5.0 · Related issues · View source
Derived from the Pylint linter.
What it does
Checks for lock objects that are created and immediately discarded in
with statements.
Why is this bad?
Creating a lock (via threading.Lock or similar) in a with statement
has no effect, as locks are only relevant when shared between threads.
Instead, assign the lock to a variable outside the with statement,
and share that variable between threads.
Example
Use instead:
import threading
counter = 0
lock = threading.Lock()
def increment():
global counter
with lock:
counter += 1