code: def reduce_array_memmap_backward(a):
      """reduce a np.array or a np.memmap from a child process"""
      m = _get_backing_memmap(a)
      if isinstance(m, np.memmap) and m.filename not in JOBLIB_MMAPS:
          # if a is backed by a memmaped file, reconstruct a using the
          # memmaped file.
          return _reduce_memmap_backed(a, m)
      else:
          # a is either a regular (not memmap-backed) numpy array, or an array
          # backed by a shared temporary file created by joblib. In the latter
          # case, in order to limit the lifespan of these temporary files, we
          # serialize the memmap as a regular numpy array, and decref the
          # file backing the memmap (done implicitly in a previously registered
          # finalizer, see ``unlink_on_gc_collect`` for more details)
          return (
              loads,
              (dumps(np.asarray(a), protocol=HIGHEST_PROTOCOL),),
          )
  
imports: from mmap import mmap
  import errno
  import os
  import stat
  import threading
  import atexit
  import tempfile
  import time
  import warnings
  import weakref
  from uuid import uuid4
  from multiprocessing import util
  from pickle import whichmodule, loads, dumps, HIGHEST_PROTOCOL, PicklingError
  from .numpy_pickle import dump, load, load_temporary_memmap
  from .backports import make_memmap
  from .disk import delete_folder
  from .externals.loky.backend import resource_tracker
label_desc: Use image node_id 9 for calling a global function with example usage: reduce_array_memmap_backward(a) and returns: _reduce_memmap_backed, loads,  dumps