code: def put(self, context):
          
          LOG.debug('%r.put(%r)', self, context)
          self._lock.acquire()
          try:
              if self._refs_by_context.get(context, 0) == 0:
                  LOG.warning('%r.put(%r): refcount was 0. shutdown_all called?',
                              self, context)
                  return
              self._refs_by_context[context] -= 1
          finally:
              self._lock.release()
docs: Return a reference, making it eligable for recycling once its reference
          count reaches zero.