Python fcntl로 파일 잠금(advisory lock)과 바이트 범위 잠금 다루기

여러 프로세스가 같은 파일을 동시에 읽고 쓰면 레이스 컨디션이 생긴다. "파일에서 값을 읽고, 계산하고, 다시 쓴다"는 흔한 패턴도 두 프로세스가 동시에 끼어들면 한쪽의 갱신이 그냥 사라질 수 있다. Python의 fcntl…

Continue ReadingPython fcntl로 파일 잠금(advisory lock)과 바이트 범위 잠금 다루기

Python os.memfd_create()로 이름 없는 메모리 파일 다루기

프로세스 간에 잠깐 쓰고 버릴 데이터를 주고받을 때 /tmp에 실제 파일을 만들면 디스크(또는 tmpfs) 경로가 남고, 정리를 깜빡하면 흔적이 계속 쌓인다. memfd_create()는 파일시스템 어디에도 나타나지 않는 익명 메모리 파일을 만들어…

Continue ReadingPython os.memfd_create()로 이름 없는 메모리 파일 다루기