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): |