>>652
「スレッドごとにスクリプトを走らせたい」ってのが第一義の目的として、
単純には state 複数で実現できるのはわかった上で、それだとグローバル変数を
簡単に共有できないから「一つのState を使いたい」って要望がでてくるんだと思われ。

その要望自体は皆理解はできると思う

で、一つのStateを複数のスレッドから使おうとした場合、確かにスクリプトの呼び出しとか
の部分だけを整理して Mutex で固めてしまうのは簡単なんだけど、
「スクリプトが複数スレッドで動いてる」って状況だと、そのスクリプト自体が lua/squirrel の
内部処理を自分のAPIつかっていろいろ呼び出してしまってるので、その操作も
全部精査した上で適切にロックする処理を全部の箇所に足す必要があります。
「付与すればいいだけ」なんだけど、その場所がかなり多くて調べるのもうまく動くかチェックするのも大変。
lua も squirrel もスタック操作がステートフルなので、APIをロックするだけではダメだからね。

俺はそんな作業頼まれても絶対やりたくないので、聞かれたら
「lua も squirrel も単一State の操作はスレッドセーフにできないからやめとけ」って説明します。