class_docstr: Server that listens for inter-process messages.
  
  Messages are exchanged as pickle-encoded objects.
class_docstr_tok: ["Server","that","listens","for","inter-process","messages",".","Messages","are","exchanged","as","pickle-encoded","objects","."]
docstr: Convenience wrapper that creates a new server instance and calls
  serve_forever in a background thread.
  
  The server will be listening before this function returns.
  
  Returns:
      the IPCServer instance
docstr_tok: ["Convenience","wrapper","that","creates","a","new","server","instance","and","calls","serve_forever","in","a","background","thread",".","The","server","will","be","listening","before","this","function","returns",".","Returns",":","the","IPCServer","instance"]
code: def run_in_background(cls, on_message):
      """Convenience wrapper that creates a new server instance and calls
      serve_forever in a background thread.
  
      The server will be listening before this function returns.
  
      Returns:
          the IPCServer instance
      """
      server = cls(on_message)
      thread = threading.Thread(target=server.serve_forever)
      thread.daemon = True
      thread.start()
      return server
  
file_path: fiftyone/fiftyone/service/ipc.py
imports: import pickle
  import socket
  import socketserver
  import threading
label_desc: Use image node_id 5 for calling the IPCServer obj's underlying member method code with example usage: obj.run_in_background(cls, on_message) and returns: server