docs: def recv_multipart(self, *args, **kwargs):
          """wrap recv_multipart to prevent state_changed on each partial recv"""
          self.__in_recv_multipart = True
          try:
              msg = super(GreenSocket, self).recv_multipart(*args, **kwargs)
          finally:
              self.__in_recv_multipart = False
              self.__state_changed()
          return msg