title: How to implement a Lock with a timeout in Python 2.7
body: <p>Is there a way to implement a lock in Python for multithreading purposes whose <code>acquire</code> method can have an arbitrary timeout? The only working solutions I found so far use polling, which</p>
  
  <ul>
  <li>I find inelegant and inefficient</li>
  <li>Doesn't preserve the bounded waiting / progress guarantee of the lock as a solution to the critical section problem</li>
  </ul>
  
  <p>Is there a better way to implement this?</p>