[#42454] 多量の正規表現との効率的なマッチのアイデアを、、 — しん <dezawa@...>

出沢です

22 messages 2006/06/22
[#42455] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — rubikitch <rubikitch@...> 2006/06/22

From: しん <dezawa@aliadne.net>

[#42456] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — しん <dezawa@...> 2006/06/23

出沢です

[#42458] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — rubikitch <rubikitch@...> 2006/06/23

From: しん <dezawa@aliadne.net>

[#42459] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — しん <dezawa@...> 2006/06/23

出沢です

[#42460] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — rubikitch <rubikitch@...> 2006/06/23

From: しん <dezawa@aliadne.net>

[#42461] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — しん <dezawa@...> 2006/06/23

出沢です。

[ruby-list:42495] sleep等の不可解な問題発生(なぜでしょうか)

From: "Hisashi Yahata" <yahatah@...>
Date: 2006-06-27 03:29:45 UTC
List: ruby-list #42495
いつもお世話になっております。
スクリプト中でsleep(2)を実行すると、無限に応答がない状態になります。
また、次ぎの実例3に示すような同様の不可解な現象が発生しました。
Rubyのバグとは思えませんが、理由を教えてください。

なお、Rubyは、Windows2000上でruby 1.8.2 (2004-11-06) [i386-mswin32]をRDE
で使用しています。

1 使用の目的
 ある時刻になったら、自動的にスクリプトを実行させるために、簡単な事例を用い
て検討を始めました。

2 実例1
 例えば、5秒間隔でprint命令を出すために、次ぎのスクリプトを実行すると、秒
が同一数値のために、
当然ながら、1200回以上も表示されます。そこで、1秒間待つために、sleep 1
 を入れました。
 ところが、sleep 0と同じ働きを示し、全く表示されません。

3 実例2
 そこで、同じことですが、さらに簡単なスクリプトで試したのですが、同じ結果で
す。
 これでは、sleepの機能が正しく機能していないとしか言えませんが、どこに
間違いがあるのでしょうか。
 PCを変更しても同様でした。

4 実例3
 障害回避策として、実例3を試しました。この場合も表示されない状態でした。
 そこで、 ts = time.secの前にpを入れると正しく表示され、初期の目的は達成さ
れます。
 p ts = time.sec  # <= pを省略すると表示されなくなる。
 pを書き込むことで異常は回避されるますが、直接にロジックとは無関係ですの
で、何故このような不具合が発生するのかと嫌な気分です。

# 実例1
while (1)
time=Time.now
 if time.sec%5==0 then
  printf("%d %d %d\n",time.hour, time.min, time.sec)
  sleep 1
  end
end

# 実例2
t=0
while (1)
  sleep(2.2)
  t+=1
  print t
end

# 実例3  
ts=0
while (1)
time=Time.now
 if time.sec%5==0 then
 if ts != time.sec then
  printf("%d %d %d\n",time.hour, time.min, time.sec)
  p ts = time.sec  # <= pを省略すると表示されなくなる。
 end
 end
end

矢幡


In This Thread

Prev Next