docs: def _handler(self, conn):
          """
          Connection handler thread. Takes care of communication with the client 
          and running the proper task or applying a signal.
          """
          incoming = self.recv(conn)
          self.log(DEBUG, incoming)
          try:
              # E.g. ['twister', [7, 'invert'], {'guess_type': True}]
              task, args, kw = self.codec.decode(incoming)
              
              # OK, so we've received the information. Now to use it.
              self.log(INFO, 'Fulfilling task %r' % task)
              self.started_task()
              
              pass_backend = False
              obj = self.tasks[task]
              if _is_iter(obj):
                  # (callable, bool)
                  obj, pass_backend = obj
              if pass_backend:
                  # Have to do this, since args is a list
                  args = [self] + args
              
              # Get and package the result
              res = ['success', obj(*args, **kw)]
          except Exception as e:
              self.log(ERROR, 'Error while fullfilling task %r: %r' % (task, e))
              res = ['error', e.__class__.__name__, e.args]
              if self.tracebacks:
                  show_err()
          else:
              self.log(INFO, 'Finished fulfilling task %r' % task)
          finally:
              self.send(conn, self.codec.encode(res))
              self.finished_task()
              conn.close()