def requires_emit(self, resolver: Resolver, queue: QueueScheduler) -> typing.Dict[object, ResultVariable]: sub = ReferenceStatement.requires_emit(self, resolver, queue) temp = ResultVariable() temp.set_type(self.type) temp.set_provider(self) HangUnit(queue, resolver, sub, temp, self) return {self: temp}
def requires_emit(self, resolver, queue): # introduce temp variable to contain the eventual result of this stmt temp = ResultVariable() temp.set_type(Bool()) temp.set_provider(self) # wait for the lhs HangUnit(queue, resolver, self.children[0].requires_emit(resolver, queue), temp, self) return {self: temp}