forkIO を使用してクライアントごとにスレッドを生成するゲーム サーバーがあります。たとえば、クライアントのリストとモンスターのリストをすべてのクライアントと共有したいと考えています。
私の最初のアイデアは、両方のリストを含むデータ型の 1 つの TVar コンテナーを持つことでしたが、2 つのスレッドがクライアントとモンスターを同時に変更すると、その部分が正しいことを理解していれば、そのうちの 1 つをロールバックするとします。これは不要なロールバックになります。
2 番目のアイデアは、リストを TVar にして、それらを引数として渡すことでしたが、コードをクリーンに保ち、さらにリストを追加する場合に簡単に管理できるように、リストをコンテナーに入れたいと思いました。
コンテナにいくつかの TVar を渡す方法はありますか、それとも最初のアイデアを考えすぎですか?