class_docstr: Internal state management class that controls when `_process` is called
  within the C++ Table internals.
  
  `_process()` notifies the engine to clear its queue of pending updates to be
  applied and reconciled. When Perspective runs within an event loop, we
  should use the loop whenever possible to batch calls to `_process()`.
  Callers that have access to an event loop implementation should set
  `queue_process` to their own function with `table_id` and `state_manager` as
  positional arguments.
  
  Override functions must be bound to this instance using `functools.partial`,
  i.e.: `functools.partial(queue_process_custom,
  state_manager=table._state_manager)
  
  The guarantee of `queue_process` is that `call_process` will be called,
  either on the next iteration of the event loop or before output is generated
  (through a serialization method, for example).
  
  Though each :obj:`~perspective.Table` contains a separate instance of the
  state manager, `TO_PROCESS`, which contains the `t_pool` objects for pending
  `_process` calls, is shared amongst all instances of the state manager.
docstr: Queue a `_process` call on the specified pool and table ID.
  
  Checks whether a `_process()` call has been queued already for the specified
  table, and calls `queue_process`, which MUST be implemented by the caller.
  
  Args:
      pool (:obj`libpsppy.t_pool`): a `t_pool` object
      table_id (:obj`int`): a unique ID for the Table
docstr_tok: ["Queue","a","`","_process","`","call","on","the","specified","pool","and","table","ID",".","Checks","whether","a","`","_process","(",")","`","call","has","been","queued","already","for","the","specified","table",",","and","calls","`","queue_process","`",",","which","MUST","be","implemented","by","the","caller",".","Args",":","pool","(",":","obj","`","libpsppy.t_pool","`",")",":","a","`","t_pool","`","object","table_id","(",":","obj","`","int","`",")",":","a","unique","ID","for","the","Table"]
code: def set_process(self, pool, table_id):
      """Queue a `_process` call on the specified pool and table ID.
  
      Checks whether a `_process()` call has been queued already for the specified
      table, and calls `queue_process`, which MUST be implemented by the caller.
  
      Args:
          pool (:obj`libpsppy.t_pool`): a `t_pool` object
          table_id (:obj`int`): a unique ID for the Table
      """
      if table_id not in _PerspectiveStateManager.TO_PROCESS:
          _PerspectiveStateManager.TO_PROCESS[table_id] = pool
          self.queue_process(table_id)
  
label_desc: Use image node_id 2 for calling the _PerspectiveStateManager obj's underlying member method code with example usage: obj.set_process(pool, table_id) without return types