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: Handles one request at a time until the server shuts down.
  
  This is a simple wrapper around TCPServer.serve_forever that keeps
  track of whether it was called.
docstr_tok: ["Handles","one","request","at","a","time","until","the","server","shuts","down",".","This","is","a","simple","wrapper","around","TCPServer.serve_forever","that","keeps","track","of","whether","it","was","called","."]
code: def serve_forever(self):
      """Handles one request at a time until the server shuts down.
  
      This is a simple wrapper around TCPServer.serve_forever that keeps
      track of whether it was called.
      """
      try:
          with self.__lock:
              self.__in_serve_forever = True
          super().serve_forever()
      finally:
          with self.__lock:
              self.__in_serve_forever = False
  
file_path: fiftyone/fiftyone/service/ipc.py
imports: import pickle
  import socket
  import socketserver
  import threading
label_desc: Use image node_id 3 for calling the IPCServer obj's underlying member method code with example usage: obj.serve_forever() without return types