lua 5.1マニュアルによれば、lua_xmove
は、同じLua状態に属する異なるスレッドのスタック間で値を移動します。しかし、私は誤ってそれを使用して、異なるLua州間で値を移動させてしまい、うまく動作していたようです。 1つのLUA状態から別のLUA状態に値を移動する他のAPIがありますか(5.1の場合)、またはlua_xmove
を使用できますか?異なるlua状態間のlua_xmove
答えて
Luaはガベージコレクションデータをグローバル状態で格納します。したがって、GCまたは文字列オブジェクトを状態間で移動すると、ガベージコレクタを混乱させる可能性があり、ダングリングリファレンスを作成する可能性があります。
したがって、動作しているように見えるかもしれませんが、後で問題が発生する可能性があります。
参考までに、この正確な問題については、開発者がthis mailing list threadを参照してください。 lua_xmove
は、グローバル状態が同じであることを確認しないことを
注: http://stackoverflow.com:方法の
api_check(from, G(from) == G(to));
'api_check'はコンパイル時のオプションに基づいて動作を変更することに注意してください。マニュアルの第3章(5.2章のch 4)とluaconf.hを参照してください。私は、通常のリリースのLuaがAPIチェックを有効にしないと信じています。 – RBerteig
apiチェックの目的は明瞭で、「from」は「to」と等しくなければなりません。 – doug65536
何ですか?いいえ、「from」は「to」と同じであってはなりません。真であるのは、状態ツリー内の 'lua_newstate()'呼び出しに起因するグローバル状態が両方の引数で同じでなければならないということです。つまり、 'to'と' from'の両方が(おそらく空の) 'lua_newthread()'の一連の呼び出しは、いくつかの初期状態 'L'に根ざしています。 – BadZen
- 1. ListBoxItemの異なる状態間のアニメーション
- 2. 異なる「状態」
- 3. componentWillReceiveProps状態が還元状態更新後のレンダリング状態と異なる
- 4. 1つのアクティビティで異なるレイアウト間のボタンの状態?
- 5. 異なる状態の口ひげテンプレート
- 6. 異なるプロパティ/状態のクローンReact componet
- 7. 2つの異なるブレークポイント間のインスタンス状態を比較する方法
- 8. リングアプリケーション内の異なるユーザーセッション間で状態を維持する方法
- 9. セッション状態異常な動作
- 10. アルゴリアが異なるコンポーネント間で検索状態を通過する
- 11. ASP.Netポストバック間の状態
- 12. シグナル間の競合状態
- 13. Pythonの状態空間モデル
- 14. Ember.js状態マネージャに状態の間でデータの受け渡し
- 15. 異なるSCファミリのスマートカードプロービング:SC状態を消去するコマンド
- 16. 異なるアイテムのUITableView状態を保存する方法
- 17. reduxで異なるコンポーネントの状態を更新する
- 18. は状態空間ツリー
- 19. Materialize中間チェックボックス状態
- 20. wpfアプリケーションの異なる状態のCPU使用率
- 21. 異なるビューからのモデルの読み込み(セッション状態?)
- 22. 異なる状態のTextViewの色を変更します
- 23. ページ間の状態を維持する
- 24. アクティビティ間の状態を維持する
- 25. Redux状態の突然変異
- 26. プロファイルごとに異なる休止状態のプロパティ
- 27. どの状態に応じて表示が異なる
- 28. Cで異なるリソースのゲーム状態を扱う
- 29. 異なるメニューリストにトグル状態を維持する
- 30. vpython 7 with jupyterノートブックカーネルがビジー状態とアイドル状態の間でジャンプする
一つは、Luaは異なるスレッド上で異なる 'LuaのStates'間でのオブジェクトのコピー/移動します/ a/9573063/1150918 – Kamiccolo
私は* LuaLanes *コードをgrok'dし、ある状態から別の状態へのコピーオーバーを行っているコードを見ています。ありがとう。 – vyom