def _ldap_function_call(func,*args,**kwargs):
"""
Wrapper function which locks calls to func with via
module-wide ldap_lock
"""
if __debug__:
if ldap._trace_level>=1:
ldap._trace_file.write('*** %s.%s (%s,%s)\n' % (
'_ldap',repr(func),
repr(args),repr(kwargs)
))
if ldap._trace_level>=3:
traceback.print_stack(limit=ldap._trace_stack_limit,file=ldap._trace_file)
ldap._ldap_module_lock.acquire()
try:
try:
result = func(*args,**kwargs)
finally:
ldap._ldap_module_lock.release()
except LDAPError,e:
if __debug__ and ldap._trace_level>=2:
ldap._trace_file.write('=> LDAPError: %s\n' % (str(e)))
raise
if __debug__ and ldap._trace_level>=2:
if result!=None and result!=(None,None):
ldap._trace_file.write('=> result: %s\n' % (repr(result)))
return result
评论列表
文章目录