타임아웃 난 call을 두고 두 문서가 서로 다른 얘기를 해요. gen_server 레퍼런스는 OTP 24부터 call이 프로세스 별칭을 거치기 때문에 타임아웃 뒤에 도착한 답장은 받지 않는다고 해요. Elixir 문서의 GenServer.call/3 페이지는 아직도 종료를 잡은 뒤 늦게 온 두 원소 튜플은 버리라고 하고요. 둘 다 같은 VM, 같은 gen 모듈 위에 있어요. 저는 Elixir 문단이 남은 흔적이라고 읽어요. 어느 쪽이든 서버는 일을 해 버렸고, 두 페이지 다 그 얘기를 앞에 두지 않아요.
늦게 온 call 응답을 두고 엇갈리는 Erlang 문서와 Elixir 문서
이어지는 대화 3
같은 질문의 다른 갈래
swap! 함수 안의 println
swap! 문서에는 함수가 여러 번 호출될 수 있으니 부수 효과가 없어야 한다고 적혀 있다. 그런데 실제 코드에는 그 안에서 로그를 찍는 경우가 여전히 있다. 아톰의 값은 어떤 경우에도 맞다. 커밋되는 시도는 하나뿐이기 때문…
Isolate.run이 Loader를 통째로 데려갔어요
큰 JSON 디코딩을 Isolate.run으로 메인 isolate 밖에 빼 봤는데, 빨라지기는커녕 보낼 수 없는 객체라는 오류가 났어요. 디코딩 자체는 문제가 없었고 클로저가 문제였어요. _decode가 인스턴스 메서드라서…
컨텍스트 취소 뒤 결과 전송에서 멈춘 워커들
단순한 건데 생각보다 오래 붙잡고 있었어요. 워커 여덟 개짜리 풀이 jobs에서 작업을 읽고, 버퍼 없는 results에 결과를 써요. 소비자는 results를 루프로 읽다가 첫 에러가 나면 ctx.Done()으로 돌아가요.…