def METHOD_NAME(self):
    waiter = Queue(0)
    def greedy():
        self.pool.get()
        self.pool.get()
        self.pool.get()
        self.pool.get()
        # No one should be waiting yet.
        self.assertEqual(self.pool.waiting(), 0)
        # The call to the next get will unschedule this routine.
        self.pool.get()
        # So this put should never be called.
        waiter.put('Failed!')
    killable = eventlet.spawn(greedy)
    # no one should be waiting yet.
    self.assertEqual(self.pool.waiting(), 0)
    # Wait for greedy
    eventlet.sleep(0)
    # Greedy should be blocking on the last get
    self.assertEqual(self.pool.waiting(), 1)
    # Send will never be called, so balance should be 0.
    self.assertFalse(not waiter.full())
    eventlet.kill(killable)