code: def get_spill_lock() -> Union[SpillLock, None]:
      """Return a spill lock within the context of `acquire_spill_lock` or None
  
      Returns None, if spilling is disabled.
      """
  
      if get_global_manager() is None:
          return None
      _id = threading.get_ident()
      spill_lock, _ = _thread_spill_locks.get(_id, (None, 0))
      return spill_lock
  
file_path: cudf/python/cudf/cudf/core/buffer/utils.py
imports: from __future__ import annotations
  import threading
  from contextlib import ContextDecorator
  from typing import Any, Dict, Optional, Tuple, Type, Union
  from cudf.core.buffer.buffer import Buffer, BufferOwner, cuda_array_interface_wrapper, get_ptr_and_size
  from cudf.core.buffer.exposure_tracked_buffer import ExposureTrackedBuffer
  from cudf.core.buffer.spill_manager import get_global_manager
  from cudf.core.buffer.spillable_buffer import SpillableBuffer, SpillableBufferOwner, SpillLock
  from cudf.options import get_option
label_desc: Use image node_id 5 for calling a global function with example usage: get_spill_lock() and returns: spill_lock, None