2009-09-10から1日間の記事一覧

マルチスレッドなFFIの実装

マルチスレッドでOCamlからCを呼ぶ場合、または CからOCamlにコールバックする場合、 C側からOCaml のデータを触るとき C側からOCaml のコードを呼ぶとき は、その部分を (OCamlを触らないコード) leave_blocking_section(); (OCamlを触るコード) enter_bloc…

メモリアロケーションとコンテキストスイッチの関係

OCamlのコンテキストスイッチのタイミングを調べた。OCaml では OSネイティブのスレッド (pthread) を使える。 しかし、OCamlのランタイム内で同時に走るネイティブスレッドは1本だけ、という制限がある。OCamlはスレッドセーフなGCを備えていないためだ。 …