나는 lwt의 대기 함수에 대한 질문을 가지고 있는데, 어떻게하면 Lwt.t 스레드를 리턴 할까? 먼저 예제를 보여 드리겠습니다. 내가 전화 위의 함수에서 Ocaml Lwt.wait()
open Lwt_io
open Lwt.Infix
let i, o = Lwt_io.pipe()
let get_int() =
let t, w = Lwt.wait() in
(*what do I do here to provide the sleeping thread*)
(*with a possible integer reply*)
Lwt_io.read_int(i) >>= fun i -> Lwt.wakeup w i;
t
let ans = get_int()
는 잠자는 스레드 플러스의 wakener을 생산하기 위해 기다려야하지만 가능한 정수 응답과 잠자는 스레드를 제공하고 여전히 GET_INT에서 잠자는 스레드를 반환 할 수하는 방법을 확실 해요 기능. 나는 (Lwt_io.read_int (i) >> = fun i -> Lwt.wakeup w i;)이 작동하는 것처럼 보이지만이 작업을 수행하는 올바른 방법인지 확신 할 수는 없다. 모든 포인터 또는 링크 또는 주석?
참고 : Lwt_io.read_int (i)를 함수에 추가하는 것이 불필요하기 때문에 묻습니다. 난 그냥 get_int 함수를 제거하고 그냥 Lwt_io.read_int (i)를 호출 할 수 있지만 중복없이 이것을 어떻게 할 것인지 궁금하다.