class_docstr: Keeps ssh connections to share. Serves singleton representation
  per connection.
  
  A custom identity file can be specified via `datalad.ssh.identityfile`.
  Callers are responsible for reloading `datalad.cfg` if they have changed
  this value since loading datalad.
class_docstr_tok: ["Keeps","ssh","connections","to","share",".","Serves","singleton","representation","per","connection",".","A","custom","identity","file","can","be","specified","via","`","datalad.ssh.identityfile","`",".","Callers","are","responsible","for","reloading","`","datalad.cfg","`","if","they","have","changed","this","value","since","loading","datalad","."]
docstr: Return socket_dir, and if was not defined before,
  and also pick up all previous connections (if any)
code: def socket_dir(self):
      """Return socket_dir, and if was not defined before,
      and also pick up all previous connections (if any)
      """
      self.ensure_initialized()
      return self._socket_dir
  
imports: import fasteners
  import os
  import logging
  from socket import gethostname
  from hashlib import md5
  from subprocess import Popen
  import tempfile
  import threading
  from datalad.utils import quote_cmdlinearg
  from datalad.support.exceptions import CapturedException, CommandError, ConnectionOpenFailedError
  from datalad.support.external_versions import external_versions
  from datalad.utils import auto_repr, Path, ensure_list, on_windows
  from datalad.cmd import NoCapture, StdOutErrCapture, WitlessRunner
  from ..None import cfg
label_desc: Use image node_id 2 for calling the MultiplexSSHManager obj's underlying member method code with example usage: obj.socket_dir() and returns: self