import threading import os import signal import sys l = threading.RLock() def lock_release(signal=None, frame=None): l.acquire() l.release() signal.signal(signal.SIGUSR2, lock_release) print (os.getpid()) while True: sys.stdout.write('.') sys.stdout.flush() for _ in range(100000): lock_release()