class_docstr: Pool implementation with customizable pickling reducers.
  
  This is useful to control how data is shipped between processes
  and makes it possible to use shared memory without useless
  copies induces by the default pickling methods of the original
  objects passed as arguments to dispatch.
  
  `forward_reducers` and `backward_reducers` are expected to be
  dictionaries with key/values being `(type, callable)` pairs where
  `callable` is a function that, given an instance of `type`, will return a
  tuple `(constructor, tuple_of_objects)` to rebuild an instance out of the
  pickled `tuple_of_objects` as would return a `__reduce__` method.
  See the standard library documentation about pickling for more details.
class_docstr_tok: ["Pool","implementation","with","customizable","pickling","reducers",".","This","is","useful","to","control","how","data","is","shipped","between","processes","and","makes","it","possible","to","use","shared","memory","without","useless","copies","induces","by","the","default","pickling","methods","of","the","original","objects","passed","as","arguments","to","dispatch",".","`","forward_reducers","`","and","`","backward_reducers","`","are","expected","to","be","dictionaries","with","key\/values","being","`","(","type",",","callable",")","`","pairs","where","`","callable","`","is","a","function","that",",","given","an","instance","of","`","type","`",",","will","return","a","tuple","`","(","constructor",",","tuple_of_objects",")","`","to","rebuild","an","instance","out","of","the","pickled","`","tuple_of_objects","`","as","would","return","a","`","__reduce__","`","method",".","See","the","standard","library","documentation","about","pickling","for","more","details","."]
code: def _setup_queues(self):
      context = getattr(self, "_ctx", mp)
      self._inqueue = CustomizablePicklingQueue(
          context, self._forward_reducers
      )
      self._outqueue = CustomizablePicklingQueue(
          context, self._backward_reducers
      )
      self._quick_put = self._inqueue._send
      self._quick_get = self._outqueue._recv
  
imports: from mmap import mmap
  import errno
  import os
  import stat
  import sys
  import threading
  import atexit
  import tempfile
  import shutil
  import warnings
  from time import sleep
  from pickle import whichmodule
  from pickle import Pickler
  from pickle import HIGHEST_PROTOCOL
  from io import BytesIO
  from ._multiprocessing_helpers import mp, assert_spawning
  from multiprocessing.pool import Pool
  from .numpy_pickle import load
  from .numpy_pickle import dump
  from .hashing import hash
label_desc: Use image node_id 2 for calling the PicklingPool obj's underlying member method code with example usage: obj._setup_queues() without return types