Requête de savoir si Python threading.Serrure est verrouillée ou non

J'ai un fil, je suis en cours d'exécution (code ci-dessous) qui lance un blocage de la sous-processus. Pour s'assurer que les autres threads ne lancez pas le même sous-processus, j'ai un verrou autour de cette subprocess.call appel. Je veux aussi être capable de mettre fin à ce sous-processus d'appel, j'ai donc une fonction d'arrêt que j'appelle d'ailleurs. Dans le cas où le sous-processus est arrêté prématurément, je veux libérer le verrou, qui est ce que le code ci-dessous:

class SomeThread(threading.Thread):
   def run(self):
      aLock.acquire()
      self.clip = subprocess.call([ 'mplayer', 'Avatar.h264'], stdin=subprocess.PIPE)
      aLock.release()
   def stop(self):
      if self.clip != None and self.clip.poll() == True:
         try:
            self.clip.send_signal(signal.SIGINT)
         except:
            pass
      aLock.release()

Cependant, d'après la documentation ici, appelant release() sur un libéré de verrouillage va lever une Exception:

A RuntimeError is raised if this method is called when the lock is unlocked.

Est-il une fonction de requête comme aLock.isLocked()?

OriginalL'auteur puk | 2013-10-19