All pastes #839193 Raw Edit

valhallasw

public python v1 · immutable
#839193 ·published 2007-12-30 22:04 UTC
rendered paste body
self.global_max.acquire() #semaphoretry:    self.lock.acquire()    local = self.ids[identifier]    self.lock.release()        if not local.max.acquire(false): # acquire local lock, releasing global lock when waiting        self.global_max.release()        local.max.acquire()        self.global_max.acquire()    try:        # we have permission to use a connection        # check if a connection exists        local.lock.acquire()        try:            if len(local.conns > 0):                connection = local.conns.pop()            else:                # find out if we need to close a connection                self.lock.acquire()                try:                    if total.conns >= max_conns: #we need to close a connection                        #find oldest connection, close it                finally:                    self.lock.release()                #create new connection        finally:            local.lock.release()                   except:        local.max.release()                    raiseexcept:    self.global_max.release()    raise