docs: def critical_section_lock(lock=None, blocking=True, timeout=None, raise_exception=True):
  	""" An a wrapper for :func:`.critical_section_dynamic_lock` function call, but uses a static lock object
  	instead of a function that returns a lock with which a function protection will be made
  
  	:param lock: lock with which a function will be protected
  	:param blocking: same as blocking in :func:`.critical_section_dynamic_lock` function
  	:param timeout: same as timeout in :func:`.critical_section_dynamic_lock` function
  	:param raise_exception: same as raise_exception in :func:`.critical_section_dynamic_lock` function
  
  	:return: decorator with which a target function may be protected
  	"""
  
  	def lock_getter(*args, **kwargs):
  		return lock
  
  	return critical_section_dynamic_lock(
  		lock_fn=lock_getter, blocking=blocking, timeout=timeout, raise_exception=raise_exception
  	)