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. セッション状態異常な動作
- 7. リングアプリケーション内の異なるユーザーセッション間で状態を維持する方法
- 8. ASP.Netポストバック間の状態
- 9. Ember.js状態マネージャに状態の間でデータの受け渡し
- 10. 異なるアイテムのUITableView状態を保存する方法
- 11. 異なるビューからのモデルの読み込み(セッション状態?)
- 12. ページ間の状態を維持する
- 13. プロファイルごとに異なる休止状態のプロパティ
- 14. Cで異なるリソースのゲーム状態を扱う
- 15. 再帰関数間の状態のトラッキング
- 16. ポストバック間でのラジオボックス状態の取得
- 17. EJBとジャージー間のエンティティの状態
- 18. ViewModels間の状態の共有
- 19. シナリオ間のガーキン状態の維持
- 20. AOTクエリの有効な時間状態を回避する
- 21. クリック状態の異なる不規則な形のImageButtonを作成する
- 22. 間違ったボタンのアクティブ状態
- 23. コールバック関数間の状態を維持
- 24. Seamを開始するContext数秒間アイドル状態にしても何度もアイドル状態になる
- 25. 安全でない状態と安全な状態
- 26. トグル - 2つの状態の間でトグルのエレガントな方法
- 27. 2つの状態間のスムーズな遷移(動的に生成)
- 28. IllegalArgumentException:間違った状態クラス
- 29. Windows Mobile 6間欠接続状態NOPATHTODESTINATION
- 30. マクロ間で状態を渡す
一つは、Luaは異なるスレッド上で異なる 'LuaのStates'間でのオブジェクトのコピー/移動します/ a/9573063/1150918 – Kamiccolo
私は* LuaLanes *コードをgrok'dし、ある状態から別の状態へのコピーオーバーを行っているコードを見ています。ありがとう。 – vyom