「なでしこv3」開発掲示板

なでしこ3を改善するための掲示板

(#344) ローカル変数のスタック - TKI (2024-10-31 21:14) /高 調査中
v3.6.xで、関数に入った時に前のローカル変数をスタックに積み、終了時にスタックから戻す処理が追加されたかと思います

このスタックが1つしかないため「秒待つ」の間に別のイベントが発生するとスタックの整合性がヤバくなります(語彙力なし)

動作確認
//------v3.6.25
0.1秒後には:
 //スタックに積む①
 「A開始」を表示 //1
 1秒待つ
 「A再開」を表示 //3
 //スタックおろす (①ではなく②をおろしている)

0.5秒後には:
 //スタックに積む②
 「B開始」を表示 //2
 1秒待つ //待っている間にAのほうの処理に戻る
 「B再開」を表示 //4
 //スタックおろす
//------
実行結果
A開始
B開始
A再開
B再開


時系列
↓「0.1秒後には」でスタックに積む①
↓「0.5秒後には」でスタックに積む②
↓積んだままAの処理が再開する(ローカル変数がおかしくなる)
↓「0.1秒後には」でスタックおろす(①ではなく②をおろしている)
↓「0.5秒後には」でスタックおろす
関数を並行して実行するとおかしい / TKI (2024-10-29 21:47) (#342)/ 低 未処理
  検証ありがとうございます / クジラ飛行机 (2024-10-30 19:02) (#343)/ 高 調査中
  ローカル変数のスタック / TKI (2024-10-31 21:14) (#344)/ 高 調査中

(#344)へ返信する:

👆お手数ですが、いたずら防止のために、「真夏」の読み方を記入してください。

編集時に使うキーを入力(省略可能)

画像ファイル(最大300KB)を添付可能