def Pop(self):
frame = self.stack.pop()
#log('< Pop %s', frame)
for saved, orig in reversed(frame.saved):
try:
os.dup2(saved, orig)
except OSError as e:
log('dup2(%d, %d) error: %s', saved, orig, e)
raise
os.close(saved)
#log('dup2 %s %s', saved, orig)
self.next_fd -= 1 # Count down
for fd in frame.need_close:
#log('Close %d', fd)
try:
os.close(fd)
except OSError as e:
log('Error closing descriptor %d: %s', fd, e)
raise
# Wait for here doc processes to finish.
for proc, waiter in frame.need_wait:
unused_status = proc.WaitUntilDone(waiter)
评论列表
文章目录