短い質問:
Clojure の同時実行モデルでは、すべての LWJGL OpenGL Update 関数が同じスレッドから呼び出されるようにするにはどうすればよいですか?
長い質問
Leiningen/Clojure で lwjgl を使用した長く輝かしい戦いの後、LWJGL + Leiningen + Clojure が連携するようになりました。
ただし、LWJGL のドキュメントによると、OpenGL クライアント コマンドにはスレッド ローカル状態があるようです。別のスレッドから OpenGL コマンドを呼び出すと、Bad Things (TM) が発生する可能性があります。
したがって、私の質問: Clojure 内で Swing Threads のようなものをセットアップする正しい方法は何ですか (ただし、Swing Threads を使用できない/自分でセットアップする必要があります)。
(1) すべての OpenGL 呼び出しを担当する単一のメイン スレッドがあります。
(2) 他のスレッドがこのメイン スレッドと何らかの通信を行い、OpenGL 呼び出しを調整します。
私の背景
私は C/C++ でのスレッド化に精通しています。私は Clojure のエージェント/アトム/参照モデルに精通しています。ただし、Clojure での「手動」の同時実行/スレッド化については詳しくありません。
ありがとう!