           _ @borrow-thread-started-3?
           unlock? (promise)
           lock-thread-started? (promise)
-          lock-thread-locked? (promise)
           lock-thread (future
                        (deliver lock-thread-started? true)
                        (.lock pool)

          borrow-1 (.borrowItem pool)
          borrow-thread-started-2? (promise)
          borrow-thread-started-3? (promise)
          borrow-thread-2 (future
                           (deliver borrow-thread-started-2? true)
                           (.borrowItemWithTimeout
                            pool
                            50
                            TimeUnit/MILLISECONDS))
          borrow-thread-3 (future
                           (deliver borrow-thread-started-3? true)
                           (.borrowItemWithTimeout pool
                                                   1
                                                   TimeUnit/SECONDS))

          borrow-1 (.borrowItem pool)
          borrow-thread-started-2 (promise)
          borrow-thread-started-3? (promise)
          lock-thread-locked? (promise)
          borrow-thread-2 (future
                           (deliver borrow-thread-started-2
                                    (Thread/currentThread))
                           (timed-deref lock-thread-locked?)
                           (.borrowItem pool))
          borrow-thread-3 (future
                           (deliver borrow-thread-started-3? true)
                           (timed-deref lock-thread-locked?)
                           (.borrowItem pool))
          borrow-thread-obj-2 @borrow-thread-started-2
          _ @borrow-thread-started-3?
          lock-thread-started? (promise)
          unlock? (promise)
          lock-thread (future
                       (deliver lock-thread-started? true)
