class_docstr: Servicer handling RPCs for service statuses.
class_docstr_tok: ["Servicer","handling","RPCs","for","service","statuses","."]
docstr: Permanently sets the status of all services to NOT_SERVING.
  
  This should be invoked when the server is entering a graceful shutdown
  period. After this method is invoked, future attempts to set the status
  of a service will be ignored.
  
  This is an EXPERIMENTAL API.
docstr_tok: ["Permanently","sets","the","status","of","all","services","to","NOT_SERVING",".","This","should","be","invoked","when","the","server","is","entering","a","graceful","shutdown","period",".","After","this","method","is","invoked",",","future","attempts","to","set","the","status","of","a","service","will","be","ignored",".","This","is","an","EXPERIMENTAL","API","."]
code: def enter_graceful_shutdown(self):
      """Permanently sets the status of all services to NOT_SERVING.
  
      This should be invoked when the server is entering a graceful shutdown
      period. After this method is invoked, future attempts to set the status
      of a service will be ignored.
  
      This is an EXPERIMENTAL API.
      """
      with self._lock:
          if self._gracefully_shutting_down:
              return
          else:
              for service in self._server_status:
                  self.set(
                      service,
                      health_pb2.HealthCheckResponse.NOT_SERVING,
                  )  # pylint: disable=no-member
              self._gracefully_shutting_down = True
  
imports: import collections
  import threading
  from aim.ext.transport.proto import health_pb2
  from aim.ext.transport.proto import health_pb2_grpc
label_desc: Use image node_id 6 for calling the HealthServicer obj's underlying member method code with example usage: obj.enter_graceful_shutdown() without return types