ど、どんなもんっすかね?
どうもぺんぎんっす( ◎v◎ )
いつもとは趣向を変えて、ちょっと問題っす。
以下のコードをオブジェクトに入れて、touchしまくるっす。
連打っすね。
このとき、オブジェクトはどんなふうにOwnerSayすると思うっすか?
(連打を約1.5秒間続けた場合について考えてみてくださいっす)
[A]
reset
touch_start: 1
link_message: 1
touch_start: 2
link_message: 2
[B]
reset
touch_start: 1
link_message: 1
touch_start: 2
link_message: 2
touch_start: 3
link_message: 3
以下連打した回数続く
[C]
reset
touch_start: 1
touch_start: 2
link_message: 1
link_message: 2
integer count;
default
{
state_entry()
{
llOwnerSay("reset");
count = 0;
}
touch_start(integer total_number)
{
count++;
llOwnerSay("touch_start: " + (string)count);
llSleep(1.0);
llMessageLinked(LINK_THIS, count, "", "");
}
link_message(integer sender_num, integer num, string message, key id)
{
llOwnerSay("link_message: " + (string)count);
}
}
touch_startとlink_messageじゃなくて、
moneyとdataserverなベンダーも考えられるっすね。
その場合は悲惨なことになるわけっす。
この辺が「ノートの読み込みは最初に全部すべし」の理由なんっすね。
連打じゃなくても「ほぼ同時」のケースでも起こりそうっす。
何かうまいこと処理してやらないといけないっすね。
0 件のコメント:
コメントを投稿