関数、およびを使用して、 Lwtで特定のディレクトリからプロセスを開始するのは簡単です。Sys.getpwd
Lwt_unix.chdir
Lwt_process.exec
- 現在の作業ディレクトリ
Sys.getpwd
を保存するために使用します Lwt_unix.chdir
特定のディレクトリに移動するために使用しますLwt_process.exec
外部プロセスの開始に使用Lwt_unix.chdir
保存された現在の作業ディレクトリに移動するために使用します
このロジックには欠陥があります。スケジューラが への最初の呼び出しのLwt_unix.chdir
後、および への呼び出しの後に別のスレッドを実行できるため、保存された現在のディレクトリではなく特別なディレクトリLwt_process.exec
でこのスレッドが実行されるからです。私が説明したような競合状態を導入することなく、 Lwtを使用して特別なディレクトリからプロセスを簡単に開始することは可能ですか?