|
From: Michael Str?d. <str...@us...> - 2001-06-19 15:29:52
|
Update of /cvsroot/python-ldap/python-ldap/Lib
In directory usw-pr-cvs1:/tmp/cvs-serv11801
Modified Files:
ldapthreadlock.py
Log Message:
Rewrote timeout-handling in method LDAPObject.result().
This version is significantly faster. The former version was simply
braindead and slow.
Index: ldapthreadlock.py
===================================================================
RCS file: /cvsroot/python-ldap/python-ldap/Lib/ldapthreadlock.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** ldapthreadlock.py 2001/05/16 02:50:34 1.2
--- ldapthreadlock.py 2001/06/19 15:29:48 1.3
***************
*** 132,148 ****
return _ldap_call(self._l.result,msgid,all,0)
else:
! result_interval = 0.2
! interval_counter = int(timeout/result_interval)
! result = _ldap_call(self._l.result,msgid,all,0)
! while (result is None):
! time.sleep(result_interval)
if timeout!=-1:
! interval_counter = interval_counter-1
! if interval_counter<=0:
raise ldap.TIMELIMIT_EXCEEDED(
"LDAP time limit (%d secs) exceeded." % (timeout)
)
! result = _ldap_call(self._l.result,msgid,all,0)
! return result
def search(self,base,scope,filterstr,attrlist=None,attrsonly=0):
--- 132,145 ----
return _ldap_call(self._l.result,msgid,all,0)
else:
! result_ldap = None
! start_time = time.time()
! while (result_ldap is None) or (result_ldap==(None,None)):
! result_ldap = _ldap_call(self._l.result,msgid,all,0)
if timeout!=-1:
! if time.time()-start_time>timeout:
raise ldap.TIMELIMIT_EXCEEDED(
"LDAP time limit (%d secs) exceeded." % (timeout)
)
! return result_ldap
def search(self,base,scope,filterstr,attrlist=None,attrsonly=0):
|