'Ultimately, messages are commited. This is done either automatically by
if the message is not taken or manually by the entity which called
.take().'

def commit(self):

    if (self.state != 'taken'):
        raise exceptions.ControlException('Reply    is    {},    but    expected    it    to    be    taken.'.format(self.state))
    if (not self.has_message):
        raise exceptions.ControlException('There    is    no    reply    message.')
    self._state = 'committed'
    self.q.put(self.value)
