code: def _counter_thread(self):
      incr = array("i", [0])
      ival = array("i", [0])
      status = MPI.Status()
      while True:  # server loop
          self.comm.Recv(
              [incr, MPI.INT], MPI.ANY_SOURCE, MPI.ANY_TAG, status
          )
          if status.Get_tag() == 1:
              return
          self.comm.Send([ival, MPI.INT], status.Get_source(), 0)
          ival[0] += incr[0]
  
file_path: mpi4py/demo/nxtval/nxtval-threads.py
imports: from mpi4py import MPI
  from array import array
  from threading import Thread
label_desc: Use image node_id 2 for calling the Counter obj's underlying member method code with example usage: obj._counter_thread() without return types