これは、HAPIがPythonからコールされた場合且つHAPIがスレッドモードの場合に必要です(hapi.initializeを参照してください)。
hapi.createNodeなどの非同期関数がPythonコードの実行を試みるクックスレッドを開始する場合に問題が発生します。 つまり、Pythonを2個の異なるスレッド上で実行することになります。これはデフォルトではPythonで許可されていない事です。
クックスレッドでPythonを実行している間に、クライアントスレッド上のPythonステートを明示的に“一時停止”するようにPythonに指示する必要があります。
非同期HAPIコールの前に、まず最初にlocked == Trueでこの関数をコールする必要があります。 次に、その非同期HAPIコールが終了した後にhapi.getStatusコールによってPythonステートを検出して、再度このメソッドをlocked == Falseでコールしてロックを解放します。
使用方法 ¶
pythonThreadInterpreterLock(session
: hapi.Session, locked
: bool
) → bool
Pythonインタープリタのロックを確保または解放します。 これは、HAPIがPythonからコールされた場合且つHAPIがスレッドモードの場合に必要です(hapi.initializeを参照してください)。
session
あなたが操作しているHoudiniのセッション。 セッションの詳細はhapi.Sessionを参照してください。 単にデフォルトのインプロセスのセッションを使用するのであれば、Noneを渡してください。
locked
Trueは、HAPIクックスレッドに使用するインタープリタロックを取得します。 Falseは、そのロックをクライアントスレッドに解放します。