>>923
ふと気になって検討してみた
これのrun macroの部分がそれぞれの実際の処理に置き換わるとして
2行目では自己の予約シリアル値をローカルに取った後にいったん当該マクロを終了
別途変数更新のトリガでグローバルの現シリアル値が別マクロによって増加したときに当該マクロの実体を実行するのをオススメするよ
原案と意図が変わっちゃうんだけどね

今のままだと仮に複数のマクロ実行がかち合ってAが1を取ってストンと抜けた後の処理の流れにウエイトが入ってた場合でかつ終了に達していないとき
運悪くBが発動すると2を取ってストンと抜けて...以下繰り返しが否定しきれない

でこれまた運悪くCが3を取ったあとにAが尻まで進んで1減算した直後にDが発動すると3がDにも発番される
でBがそのタイミングで終わって直後にEが始まるとEにも3...以下繰り返しってなる

どちらも各マクロにウエイトが絶対に入らないなら一気に尻までの連続実行が保証されるから起きないんだけどね
時間の長短は関係なくて少なくともwhileで必ず待つからこちらも否定しきれないかなぁ

後者はデクリメントしなければ発生しないんで足しっぱ放置が良さげ
んで例えばデバイスブート時の一回きり実行してる既存マクロなんかでたまに初期化メンテすればまぁ平気
危なければデイリージョブかなんかでも

原案のキモは妙案だと思うんだけどMDの実行特性が絡んでくるから
管理対象が複数スロットあるわけじゃないし結局シリアライズしなくちゃいけないならバイナリセマフォというかミューテックスというか言葉はまぁいいんだけどフラグ管理の単純ロックベースでいいかなって思った
https://i.imgur.com/kU3j4Dw.png
https://i.imgur.com/5jfxkaD.png