• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

KeyboardInterrupt 시 p.join에서 exception 발생

23.07.11 15:29 작성 23.07.11 15:33 수정 조회수 217

0

w_worker = Process(target=self.w_job, args=(w_queue,))
w_worker.start()
workers.append(w_worker)

try:
    ~
except KeyboardInterrupt:
    for w in workers:
        w.join()

안녕하세요 강사님,

w.join()에서 아래와 같은 exception이 발생하는데, 어떤 문제인지 모르겠어서 질문드립니다.

Exception ignored in atexit callback: <function _exit_function at 0x7f61a90b72e0>
Traceback (most recent call last):
  File "/usr/lib/python3.10/multiprocessing/util.py", line 357, in _exit_function
    p.join()
  File "/usr/lib/python3.10/multiprocessing/process.py", line 149, in join
    res = self._popen.wait(timeout)
  File "/usr/lib/python3.10/multiprocessing/popen_fork.py", line 43, in wait
    return self.poll(os.WNOHANG if timeout == 0.0 else 0)
  File "/usr/lib/python3.10/multiprocessing/popen_fork.py", line 27, in poll
    pid, sts = os.waitpid(self.pid, flag)
KeyboardInterrupt:

해당 에러는 어떤 부분때문에 발생하는 지, 어떤 선행작업이 필요한지 궁금합니다.

답변 1

답변을 작성해보세요.

0

안녕하세요.

열심히 하시네요!

전체 코드를 봐야겠지만, 운영체제 상황에 따라서 예외가 발생할 수 있어요.

except 부분을 정리하시고 코드가 실행되는지 한 번 확인해보셔야 될 것 같습니다.

Exception ignored in atexit callback 으로 돼있어서 정확히 어느 부분에서 문제가 발생하는지도 알수가 없네요 ㅠㅠ