def sync_request(self, handlername, *args):
        """performs a synchronous (blocking) request"""
        seq = self.send_request(handlername, *args)
        while seq not in self.sync_replies:
            self.serve()
        return self.sync_replies.pop(seq)