code: def send_multipart(self, *args, **kwargs):
          
          self.__in_send_multipart = True
          try:
              msg = super(GreenSocket, self).send_multipart(*args, **kwargs)
          finally:
              self.__in_send_multipart = False
              self.__state_changed()
          return msg
docs: wrap send_multipart to prevent state_changed on each partial send