1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# 064 — 해제 콜백의 영역 재진입 차단
실행 코어는 읽기·쓰기 효과 중 같은 영역으로 다시 들어오는 호출을 거절한다.
반면 버퍼의 `release` 콜백은 취소와 티켓 회수 중에도 호출되는데, 그동안
`running`이 꺼져 있었다. 콜백이 같은 영역의 티켓을 해제하거나 새 작업을
받아들이면, 바깥쪽 회수 코드가 작업 슬롯과 예산 장부를 계속 수정할 수 있었다.
[`runtime.c`](../../prototypes/connections/runtime.c)는 자원 해제 콜백 동안 해당
영역을 실행 중으로 표시하고 이전 상태를 복원한다. 새 상태 필드나 작업별
할당은 없다. [`test-runtime.c`](../../prototypes/connections/test-runtime.c)는
취소, 대기 작업 해제, 유효하지 않은 호스트 할당 반환에서 콜백이 같은 티켓을
해제하거나 새 작업을 접수하려는 시도가 거절되는지 검사한다.
Linux AArch64의 [기본 코어 검사](../../prototypes/connections/results/2026-09-24-release-callback/core.json)는
`text` **5,908→5,980 B** (+72 B), data/BSS 0 B, 영역 128 B, 작업 슬롯 224 B를
기록했다. [선택형 비동기 코어](../../prototypes/connections/results/2026-09-24-release-callback/async-core.json)는
7,372 B로 자체 8 KiB 상한을 통과했다. [수명 검사](../../prototypes/connections/results/2026-09-24-release-callback/runtime.json),
ASan·UBSan 실행 및 `make check-release`의 실제 문서·HTTP·코드·RSS 검사가
통과했다. 이 검사는 해제 콜백의 **같은 영역** 재진입을 막는 것이며,
프로세스 내 메모리 격리나 다른 영역으로의 호출 권한을 제공하지 않는다.
수정한 코드가 담긴 [기본 CLI 묶음](../../prototypes/connections/results/2026-09-24-release-callback/pure-document-micro-linux-aarch64.tar.gz)은
22,758 B이며 [분리된 위치의 편집·복원 검사](../../prototypes/connections/results/2026-09-24-release-callback/micro-package-check.json)를
통과했다. [소스 묶음](../../prototypes/connections/results/2026-09-24-release-callback/pure-source-preview.tar.gz)은
170개 파일, 압축 333,037 B다. [깨끗한 추출·빌드 검사](../../prototypes/connections/results/2026-09-24-release-callback/source-package-check.json)는
PTY·문서 RSS·프로세스 내 전달·저장 형식 내보내기·Linux 릴리스 상한을 다시
실행했다. 이 소스 배포 크기는 런타임의 상주 메모리 수치가 아니다.
독립적으로 다시 생성한 소스 묶음도 SHA-256
`cff657597c0cc33bd9185c8460e0d84f0843da20a786578324ac612fa255c2b4`로 일치했다.
|