인프런 커뮤니티 질문&답변

seungsooo.kim님의 프로필 이미지
seungsooo.kim

작성한 질문수

고수가 되는 파이썬 : 동시성과 병렬성 문법 배우기 Feat. 멀티스레딩 vs 멀티프로세싱 (Inflearn Original)

KeyboardInterrupt 시 p.join에서 exception 발생

작성

·

300

·

수정됨

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 부분을 정리하시고 코드가 실행되는지 한 번 확인해보셔야 될 것 같습니다.

seungsooo.kim님의 프로필 이미지
seungsooo.kim
질문자

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

seungsooo.kim님의 프로필 이미지
seungsooo.kim

작성한 질문수

질문하기