Async Functions(비동기 함수)
Async Functions(비동기 함수)
Zig의 비동기 함수는 지금 잠시 물러나 있는 상태예요. 다만 완전히 사라진 게 아니라, 앞으로 더 낮은 수준의 프리미티브로 다시 등장할 예정이라서 미리 어떤 상황인지 정리해 둘게요.
본문
비동기 함수(async functions)는 0.11.0 릴리즈에서 한 걸음 물러났어요(regressed). 즉 현재 개발 방향에서는 예전처럼 쓰이지 않는다는 뜻이죠. 다만 완전히 버린 건 아니고, 앞으로 I/O 구현을 뒷받침하는 더 낮은 수준(lower level)의 프리미티브로 다시 도입할 계획입니다.
지금은 크게 쓸 일이 없지만, 나중에 이 기능이 어떤 모습으로 돌아올지 따라가 보려면 아래 추적 이슈(tracking issue)를 보면 됩니다.
- Proposal: stackless coroutines as low-level primitives — 저수준 프리미티브로서의 스택리스 코루틴(staskless coroutines) 제안
요약하면, Zig의 비동기 처리는 지금의 async/await 스타일로 끝난 게 아니라, **스택리스 코루틴(stackless coroutine)**을 저수준 기본 요소로 삼아 I/O 구현을 짤 수 있게 재설계되는 중이라는 흐름이에요. 아직 실용 코드에서 바로 쓰기보다는, 이 방향성을 염두에 두며 기다리는 단계라고 보면 됩니다.
더 알아보기
- Proposal: stackless coroutines as low-level primitives — 비동기 기능 재도입 방향의 추적 이슈
- Standard Library — I/O 구현을 비롯한 Zig 표준 라이브러리 살펴보기