class_docstr: Base class of snapshot writers which use thread or process.
  
  This class creates a new thread or a process every time when ``__call__``
  is invoked.
  
  Args:
      savefun: Callable object. It takes three arguments: the output file
          path, the serialized dictionary object, and the optional keyword
          arguments.
      kwds: Keyword arguments for the ``savefun``.
  
  .. seealso::
  
      - :meth:`chainer.training.extensions.snapshot`
code: def __call__(self, filename, outdir, target):
      if self._started:
          self._worker.join()
          self._started = False
      self._filename = filename
      self._worker = self.create_worker(
          filename, outdir, target, **self._kwds
      )
      self._worker.start()
      self._started = True
  
imports: import multiprocessing
  import os
  import shutil
  import threading
  from six.moves import queue
  from chainer.serializers import npz
  from chainer import utils
label_desc: Use image node_id 2 for calling the StandardWriter obj's underlying member method code with example usage: obj.__call__(filename, outdir, target) without return types