def _complete_execution(self, g):
<EOL>assert g.ready()<EOL>self.greenlets.remove(g)<EOL>placed = UserCritical(msg='<STR_LIT>',<EOL>hint='<STR_LIT>')<EOL>if g.successful():<EOL><INDENT>try:<EOL><INDENT>segment = g.get()<EOL>if not segment.explicit:<EOL><INDENT>segment.mark_done()<EOL><DEDENT><DEDENT>except BaseException as e:<EOL><INDENT>placed = e<EOL><DEDENT>else:<EOL><INDENT>placed = None<EOL><DEDENT><DEDENT>else:<EOL><INDENT>placed = g.exception<EOL><DEDENT>self.wait_change.put(placed)<EOL>
Forward any raised exceptions across a channel.