bbs.cgiの開発作業をすすめていくためのスレッドです。
FOXさんの努力によりSpeedyCGIへの対応が行われ、
パフォーマンスの向上が図られたbbs.cgi。
・雪だるま作戦への対応
・さらなるカスタマイズ
・パフォーマンスの向上
・微妙な虫取り
・長いメインルーチンをより短くコンパクトに
あたりがターゲットか。
前スレ:
bbs.cgi再開発プロジェクト6
http://qb5.2ch.net/test/read.cgi/operate/1113117347/
探検
bbs.cgi再開発プロジェクト7
■ このスレッドは過去ログ倉庫に格納されています
1root▲ ★
NGNG2005/11/11(金) 01:22:19ID:NuFqu9WRo
128root▲ ★
2005/11/11(金) 02:50:50ID:???0 BBS.CGI - 2005/11/11
109 名前: ◆MUMUMUhnYI [sage] 投稿日:2005/11/11(金) 02:42:33 ID:d6RFRwJS0
・味ぽんでも投稿確認画面が出るように(虫取り)
・MakeWorkFile から緊急ストッパーを切り出し(Emerg1020 Emerg1050)
・UpdateSubback サブルーチン化
・MakeIndex4PC サブルーチン化
今日までで、bbs_main中から、だらだらと長くて保守性の悪い部分はなくなったはず
109 名前: ◆MUMUMUhnYI [sage] 投稿日:2005/11/11(金) 02:42:33 ID:d6RFRwJS0
・味ぽんでも投稿確認画面が出るように(虫取り)
・MakeWorkFile から緊急ストッパーを切り出し(Emerg1020 Emerg1050)
・UpdateSubback サブルーチン化
・MakeIndex4PC サブルーチン化
今日までで、bbs_main中から、だらだらと長くて保守性の悪い部分はなくなったはず
2005/11/11(金) 10:36:36ID:bijjdSzJ0
質問。味ぽん=京ぽん?
2005/11/11(金) 11:16:25ID:ujB+FScJ0
一般的な意味を聞いてるなら味ぽん!=京ぽん。JRCの出した初代AirH" Phoneの事と考えるのが普通。
MUMUMU氏の意図ならAirH" PHONE全部という可能性もあるな。
# もうAirH" PHONEというブランドは無いんだけども。
MUMUMU氏の意図ならAirH" PHONE全部という可能性もあるな。
# もうAirH" PHONEというブランドは無いんだけども。
2005/11/11(金) 11:44:53ID:bijjdSzJ0
>>130
やはりAirH"=京ぽんをもじって味ぽんに(りゃな解釈?
やはりAirH"=京ぽんをもじって味ぽんに(りゃな解釈?
132root▲ ★
2005/11/11(金) 11:53:17ID:???0 私の定義:
・味ぽん: AH-J3001V AH-J3002V AH-J3003S
これらはbbs.cgi内で特別扱いしています( o 表示のゆえん )。
京ぽんのbbs.cgiでの特別扱いは全廃されました。
PCと全く同じ扱いです。
今後出るWillcom端末は、特別扱いしたくないですね。
ちゃんとリファラ吐いて、クッキー食べてほしい。
・味ぽん: AH-J3001V AH-J3002V AH-J3003S
これらはbbs.cgi内で特別扱いしています( o 表示のゆえん )。
京ぽんのbbs.cgiでの特別扱いは全廃されました。
PCと全く同じ扱いです。
今後出るWillcom端末は、特別扱いしたくないですね。
ちゃんとリファラ吐いて、クッキー食べてほしい。
133root▲ ★
2005/11/11(金) 15:53:35ID:???0 bbs.cgi のぐろーばるーについてのチラシの裏
$FOX <= 船単位で設定 (基本的に出航時に1回設定される)
$GB <= 1トランザクション単位で設定 (1投稿ごとに設定される)
例えば、SETTING.TXT の値はこうやって得られるです。
・SETTING.TXTは出航時に読めばよい固定値だから$FOX
・でも板名はトランザクションごとに変わるから$GB
・その下に要素がぶらさがる
$FOX->{$GB->{FORM}->{'bbs'}}->{"BBS_CONTENTS_NUMBER"}
SpeedyCGIの特性を利用した、すごくよい使い分けと思います。
もしこれがなかったら、どうやってもカオスからは脱出できなかった。
他の処理系をまたぐ必要のあるぐろーばるーは、全部追放か$GBに押し込める方向で。
でないと、どれがどれなんだかちっとも。
で、概ねそれはできたような気がしているです。
といっても、ほとんどはおじさんがやったわけですが。
$FOX <= 船単位で設定 (基本的に出航時に1回設定される)
$GB <= 1トランザクション単位で設定 (1投稿ごとに設定される)
例えば、SETTING.TXT の値はこうやって得られるです。
・SETTING.TXTは出航時に読めばよい固定値だから$FOX
・でも板名はトランザクションごとに変わるから$GB
・その下に要素がぶらさがる
$FOX->{$GB->{FORM}->{'bbs'}}->{"BBS_CONTENTS_NUMBER"}
SpeedyCGIの特性を利用した、すごくよい使い分けと思います。
もしこれがなかったら、どうやってもカオスからは脱出できなかった。
他の処理系をまたぐ必要のあるぐろーばるーは、全部追放か$GBに押し込める方向で。
でないと、どれがどれなんだかちっとも。
で、概ねそれはできたような気がしているです。
といっても、ほとんどはおじさんがやったわけですが。
134root▲ ★
2005/11/11(金) 15:56:31ID:???0 で、該当部分。
# ちょっと感動した。
#設定ファイルを読む
sub foxReadSettings
{
my ($GB) = @_ ;
my $ita = $GB->{FORM}->{'bbs'} ;
$GB->{DEBUG} .= "SETTING.TXT よみこむ? $ita<br>";
if(defined($FOX->{$ita}))
{
$GB->{DEBUG} .= "SETTING.TXT 既に読み込み済みー(1)$ita<br>";
return 0;
}
$GB->{DEBUG} .= "SETTING.TXT よみこみー$ita<br>";
(以下略)
# ちょっと感動した。
#設定ファイルを読む
sub foxReadSettings
{
my ($GB) = @_ ;
my $ita = $GB->{FORM}->{'bbs'} ;
$GB->{DEBUG} .= "SETTING.TXT よみこむ? $ita<br>";
if(defined($FOX->{$ita}))
{
$GB->{DEBUG} .= "SETTING.TXT 既に読み込み済みー(1)$ita<br>";
return 0;
}
$GB->{DEBUG} .= "SETTING.TXT よみこみー$ita<br>";
(以下略)
2005/11/11(金) 16:22:24ID:JzwJQ4w9O
デバッグの部分はリリース時に外さないの?
144ヾ(゚パ)ノ ◆f0.zuburi6
2005/11/11(金) 18:58:25ID:10GttyzX0 めっ
2005/11/11(金) 23:03:06ID:HIL5rI6a0
通風こわいよ通風
147root▲ ★
NGNG 167 名前: ◆MUMUMUhnYI [sage] 投稿日:2005/11/12(土) 05:19:07 ID:axdTew+g0 ?###
BBS.CGI - 2005/11/12a
# 051112a 雪だるまに向けたクリーンナップ大作戦 その6
# $GB->{OUTDAT}, $GB->{LOGDAT}, $GB->{xID}, $GB->{xBE} 新設
# ResAnchor, MakeBEString, MakeIdStringAndLogdat, MakeLogdat,
# MakeOutdat, Update924, WriteDatFile 以上サブルーチン化 by む
これで、bbs_main の真ん中当たりにあったアドホックなワーク用変数を
ほとんど整理した。
明日あたりから、Check_HardPosting (連続投稿ですか?のところ)を見始めるか。
BBS.CGI - 2005/11/12a
# 051112a 雪だるまに向けたクリーンナップ大作戦 その6
# $GB->{OUTDAT}, $GB->{LOGDAT}, $GB->{xID}, $GB->{xBE} 新設
# ResAnchor, MakeBEString, MakeIdStringAndLogdat, MakeLogdat,
# MakeOutdat, Update924, WriteDatFile 以上サブルーチン化 by む
これで、bbs_main の真ん中当たりにあったアドホックなワーク用変数を
ほとんど整理した。
明日あたりから、Check_HardPosting (連続投稿ですか?のところ)を見始めるか。
148▲ ◆SANUKI/VII @焼きうどん ★
2005/11/12(土) 08:55:55ID:???P
149▲ ◆SANUKI/VII
NGNG ↑あら、ならなかったです
キャップ付けるとoutdatってなるだす
キャップ付けるとoutdatってなるだす
150root▲ ★
NGNG >>148-149
MakeOutdat をサブルーチン化する時に、
saku sakud saku2ch だけ特殊処理をしているところ
(これらは HOST: を表示しているが、キャップだとさらにそれらは出ない)
に、虫を入れてしまいました。
すみません。
2chの動作報告はここで。 パート18
http://qb5.2ch.net/test/read.cgi/operate/1131005961/173-192
MakeOutdat をサブルーチン化する時に、
saku sakud saku2ch だけ特殊処理をしているところ
(これらは HOST: を表示しているが、キャップだとさらにそれらは出ない)
に、虫を入れてしまいました。
すみません。
2chの動作報告はここで。 パート18
http://qb5.2ch.net/test/read.cgi/operate/1131005961/173-192
151root▲ ★
NGNG サブルーチンにして移動する時に、
色気心を起こして、処理の順番を変えてしまったです。
・虫がいた時
if (saku sakud saku2ch) {
if (capじゃない) {
datにHOST: が入ったのを作る
}
}
else
{
普通のdatを作る
}
・今(前と同じ)
普通のdatを作る
if (saku sakud saku2ch) {
if (catじゃない) {
datにHOST: が入ったのを作る
}
}
色気心を起こして、処理の順番を変えてしまったです。
・虫がいた時
if (saku sakud saku2ch) {
if (capじゃない) {
datにHOST: が入ったのを作る
}
}
else
{
普通のdatを作る
}
・今(前と同じ)
普通のdatを作る
if (saku sakud saku2ch) {
if (catじゃない) {
datにHOST: が入ったのを作る
}
}
152root▲ ★
NGNG153(^-^)犬 ◆VET4349ZB.
NGNG 猫? いや、何となくです。分かりますから、、、ゴメンチャイ
154動け動けウゴウゴ2ちゃんねる
2005/11/13(日) 02:31:52ID:eVSZ3HVd0 qb5用のbbs.cgiの存在は、なかなか微妙だと思います。
削除系全般のHOST処理とか、BBQで串マークとか、規制でもfusianaで書き込めるとか。
バグの温床。 if(板名)ってのはなんとかやめること出来ないのかなあ
と、中身を何も知らないのに言ってみるテスト
削除系全般のHOST処理とか、BBQで串マークとか、規制でもfusianaで書き込めるとか。
バグの温床。 if(板名)ってのはなんとかやめること出来ないのかなあ
と、中身を何も知らないのに言ってみるテスト
2005/11/13(日) 02:50:38ID:YDwKttrcP
qb5だけ別CGIにすれば?
2005/11/13(日) 03:02:06ID:YDwKttrcP
そこを何とかがんばれ!
158root▲ ★
NGNG timecount/timecloseの処理をしているところって、
ずいぶん、贅肉があるみたいな。
歴史的経緯ですか。
simplify したいけど、今はとりあえずこのままにしておくか。
ずいぶん、贅肉があるみたいな。
歴史的経緯ですか。
simplify したいけど、今はとりあえずこのままにしておくか。
あるファイルをbbs.cgiだけがさわっているのであればラッキー
その確証が得られないor得るのがめんどくさい → 放置
誰かが作った装置をさっさと取り外すのはやはり嫉妬の渦の中 → さわらぬなんとか
なんてのが bbs.cgi の歴史です
その確証が得られないor得るのがめんどくさい → 放置
誰かが作った装置をさっさと取り外すのはやはり嫉妬の渦の中 → さわらぬなんとか
なんてのが bbs.cgi の歴史です
160root▲ ★
NGNG >>159
> 誰かが作った装置をさっさと取り外すのはやはり嫉妬の渦の中 → さわらぬなんとか
そうゆうものですか、、、。
私なんか、あんまりそうゆうこと考えずについさわってしまうし、そのことをどんどん公開してしまうし。
だから、いかんのかしら。
> 誰かが作った装置をさっさと取り外すのはやはり嫉妬の渦の中 → さわらぬなんとか
そうゆうものですか、、、。
私なんか、あんまりそうゆうこと考えずについさわってしまうし、そのことをどんどん公開してしまうし。
だから、いかんのかしら。
161root▲ ★
NGNG もちろん理由がなければそういうことはやらないし、
基本的には全部表でやるわけですけど。
て裕香、表でやれないようなことは、やっぱ体にも心にもいくないっす。
せめて2ちゃんねるぐらいでは、そうゆうことはできるだけしたくないなと。
基本的には全部表でやるわけですけど。
て裕香、表でやれないようなことは、やっぱ体にも心にもいくないっす。
せめて2ちゃんねるぐらいでは、そうゆうことはできるだけしたくないなと。
162root▲ ★
NGNG 2ちゃんねるぐらい = 趣味の世界
ってことですね。
仕事の世界だと、なかなかそうもいかないわけで。
あとはMakeWorkFileをちょっと読んで、今日は中身はいじらずにもうねるか。
ってことですね。
仕事の世界だと、なかなかそうもいかないわけで。
あとはMakeWorkFileをちょっと読んで、今日は中身はいじらずにもうねるか。
2005/11/13(日) 08:17:00ID:ANRcdU0J0
(雑談スマソ)
>>161そこで裕香と誤変換しますか。彼女とか娘とか、はたまた平田裕香のファンなのか・・・チョイキニナル
>>161そこで裕香と誤変換しますか。彼女とか娘とか、はたまた平田裕香のファンなのか・・・チョイキニナル
>>163
saku / sakud 等でよく見かける方のいち隠れファンです。
saku / sakud 等でよく見かける方のいち隠れファンです。
165桶屋
2005/11/13(日) 11:38:03ID:MUh++HtM0 >>158
今の時代、本当にtimecount/timecloseが必要なのか、一度考え直すのもいいのかも。
連続投稿に関してはsamba24 やバーボンができました。
投稿に関する対応は、ボランティアさんも含めた新しい仕組みが動くようになりました。
timecount/timecloseは、これらがない時代からあるものですね。
timecount/timecloseの必要性と、実装や運用のコストの比較になるのかなと。
今の時代、本当にtimecount/timecloseが必要なのか、一度考え直すのもいいのかも。
連続投稿に関してはsamba24 やバーボンができました。
投稿に関する対応は、ボランティアさんも含めた新しい仕組みが動くようになりました。
timecount/timecloseは、これらがない時代からあるものですね。
timecount/timecloseの必要性と、実装や運用のコストの比較になるのかなと。
166どくどくさぼてん
2005/11/13(日) 11:57:08ID:S6x+4xF20 samba24は鯖ごと、バーボンに至っては全板一律だからなぁ。
確かsamba24はSETTING.TXTで設定できるようにする、って話もあったけど、
ただ、最近もちょくちょく全板でいっせいに設定値変えとかしてるから、
ちとそうもしづらいのかなぁ。とか。
確かsamba24はSETTING.TXTで設定できるようにする、って話もあったけど、
ただ、最近もちょくちょく全板でいっせいに設定値変えとかしてるから、
ちとそうもしづらいのかなぁ。とか。
2005/11/13(日) 14:35:57ID:hLwbWE8U0
>>165
板によって、結構絶妙なバランスで設定されてる
値だと思いますけどね。普通の使い方をしてる人では、
まず引っかからないし見ないから、「空気みたいなもの」
としか感じないかもしれませんが。
けど見てると、設定を微妙に変更することで、荒らしさんは
やっぱり速度が落ちたりとかするのを見たりします。
だから効果はあるんだと思います。
逆に言えば、普通の人がやたら引っかかるようなものは、
それなりに問題なんじゃないですかね。
板によって、結構絶妙なバランスで設定されてる
値だと思いますけどね。普通の使い方をしてる人では、
まず引っかからないし見ないから、「空気みたいなもの」
としか感じないかもしれませんが。
けど見てると、設定を微妙に変更することで、荒らしさんは
やっぱり速度が落ちたりとかするのを見たりします。
だから効果はあるんだと思います。
逆に言えば、普通の人がやたら引っかかるようなものは、
それなりに問題なんじゃないですかね。
2005/11/13(日) 16:49:45ID:ZszaVLMv0
>>166
もしできればでいいですけどsambaは全板と各板(setting.txt)の共存ができればええんでないかと
もしできればでいいですけどsambaは全板と各板(setting.txt)の共存ができればええんでないかと
>>165-167
それなりに効果は出ていると思います。
たぶん2ちゃんねるが今よりもっともっと小さかった頃は、
画期的な仕組みだったんだと思うです。
でも今となっては、ファイルI/Oのコストが毎回(少ないとはいえ)
発生するのが、ちと気になるですね。
ということで投稿数が多い板だと、
この方式を現在の実装でやるのは、ちょっと苦しいところがあるです。
基本的に、効果を大きくしようとしてFIFOの段数を大きくすると
コストも大きくなってしまいますし、
段数が少ないと、効果が薄いです。
ということで、雪だるまにしてbbsd側でオンメモリでやるなら、
それほどでもないという読みで、今の方式を踏襲する形での実装は、
してもらおうかなと思っているです。
オンメモリならコストは低いし、実装もそれほどでもなさそうなので。
<チラシの裏>
あと、メッセージ本文の最初の何文字かとか本文の長さとか、
投稿したスレッドのキーとか時間とか、いろいろとっているけど、
今は全く使っていないので、このへんの贅肉をとって、
いずれはすっきりしたいなと思っているです。
<チラシの裏の隅>
たぶんこのへんも規制に使おうとした、あるいは昔規制に使ったことがあるんだろうなと。
</チラシの裏の隅>
</チラシの裏>
それなりに効果は出ていると思います。
たぶん2ちゃんねるが今よりもっともっと小さかった頃は、
画期的な仕組みだったんだと思うです。
でも今となっては、ファイルI/Oのコストが毎回(少ないとはいえ)
発生するのが、ちと気になるですね。
ということで投稿数が多い板だと、
この方式を現在の実装でやるのは、ちょっと苦しいところがあるです。
基本的に、効果を大きくしようとしてFIFOの段数を大きくすると
コストも大きくなってしまいますし、
段数が少ないと、効果が薄いです。
ということで、雪だるまにしてbbsd側でオンメモリでやるなら、
それほどでもないという読みで、今の方式を踏襲する形での実装は、
してもらおうかなと思っているです。
オンメモリならコストは低いし、実装もそれほどでもなさそうなので。
<チラシの裏>
あと、メッセージ本文の最初の何文字かとか本文の長さとか、
投稿したスレッドのキーとか時間とか、いろいろとっているけど、
今は全く使っていないので、このへんの贅肉をとって、
いずれはすっきりしたいなと思っているです。
<チラシの裏の隅>
たぶんこのへんも規制に使おうとした、あるいは昔規制に使ったことがあるんだろうなと。
</チラシの裏の隅>
</チラシの裏>
で、先回りして言ってしまうと、Samba24って、
そういうところが、よくできているです。
ようは、ひとことでいうと、
「大きい板でもコストを上げることなく、同じしくみで動かすことができる」ってことですかね。
スケーラビリティがあるとゆうか、成長に耐えるとゆうか。
実現している部分は正直、短いコードですけど、
かなり感心したところだったり。
そういうところが、よくできているです。
ようは、ひとことでいうと、
「大きい板でもコストを上げることなく、同じしくみで動かすことができる」ってことですかね。
スケーラビリティがあるとゆうか、成長に耐えるとゆうか。
実現している部分は正直、短いコードですけど、
かなり感心したところだったり。
>>171
なんか、早起きすね。
なんか、早起きすね。
173▲ ◆SANUKI/VII
NGNG そうか、時差があるのか
2005/11/13(日) 22:21:29ID:HwS9/loZ0
さてはまたゴルフだな・・・
175ヾ(゚パ)ノ ◆f0.zuburi6
2005/11/13(日) 22:21:47ID:H5U92I510 またドアをドンドンやられたの?
いやー
どこへ行ってもこんな感じの一ヶ月でした。
毎日五時に起きてしまい、夜も八時を過ぎればおねむ
きっとホームに帰ってもとうぶんそれが続くかと
起きたらまずススキのの生活・・・
どこへ行ってもこんな感じの一ヶ月でした。
毎日五時に起きてしまい、夜も八時を過ぎればおねむ
きっとホームに帰ってもとうぶんそれが続くかと
起きたらまずススキのの生活・・・
2005/11/13(日) 23:02:43ID:PTNu5bzS0
今、むーさんの人間性を垣間見たお。
さて、、、。
1001のところ、どうするですかねぇ。
私は今の実装でも大きな問題はないと思っていたりしますが。
全部の船に共通の変数があるといいんですが、
たぶんそういうのは、なさげだし。
1001のところ、どうするですかねぇ。
私は今の実装でも大きな問題はないと思っていたりしますが。
全部の船に共通の変数があるといいんですが、
たぶんそういうのは、なさげだし。
WriteDatFile … datに追記
GetDatInfo … dat行数、>>1の内容、datの最後のいくつか(html/の下作成用)を取得
if (datが1000以上) Over1000 … 1001を書いて、chmod 555
というのが、今の流れです。
これをどうするのが、いんだべか。
GetDatInfo … dat行数、>>1の内容、datの最後のいくつか(html/の下作成用)を取得
if (datが1000以上) Over1000 … 1001を書いて、chmod 555
というのが、今の流れです。
これをどうするのが、いんだべか。
181ヾ(゚パ)ノ ◆f0.zuburi6
2005/11/14(月) 00:26:57ID:SGvz0hKn0 >>180
そこのパーミッション書き換えタイミングにレスが重なると1000overカキコが
多発するんでしたっけ?
レス>1001の時にdat追記そのものを破棄することって難しいのかな?
多分難しいからおいちゃんも今の形にしてあったとは思うのですけど。
そこのパーミッション書き換えタイミングにレスが重なると1000overカキコが
多発するんでしたっけ?
レス>1001の時にdat追記そのものを破棄することって難しいのかな?
多分難しいからおいちゃんも今の形にしてあったとは思うのですけど。
2005/11/14(月) 00:53:46ID:zmjS5IW10
perlってappendモードで開いているファイルに対して
ftell相当のこと出来ないのけ?
出来るなら、「自分が書き込んだ後の末尾の位置」を覚えておいて
再度(行数判定等のために)読み込んだときの合計サイズと一致している場合のみ
(==1000を書き込んだのが自分である場合のみ)
1001を追記したらよいのでは?
既にオープンしているファイルからftellするのは、
I/Oコスト的には大したことないはずだし。
ftell相当のこと出来ないのけ?
出来るなら、「自分が書き込んだ後の末尾の位置」を覚えておいて
再度(行数判定等のために)読み込んだときの合計サイズと一致している場合のみ
(==1000を書き込んだのが自分である場合のみ)
1001を追記したらよいのでは?
既にオープンしているファイルからftellするのは、
I/Oコスト的には大したことないはずだし。
186ヾ(゚パ)ノ ◆f0.zuburi6
2005/11/14(月) 01:08:58ID:SGvz0hKn0 あーそうか。「同時に」なんだ。
てことは,実現させるには1001番以上が付くかどうかを各bbs.cgiが判定して,
以上なら強制的に止めてしまうしかないんですねえ。
てことは,実現させるには1001番以上が付くかどうかを各bbs.cgiが判定して,
以上なら強制的に止めてしまうしかないんですねえ。
189ヾ(゚パ)ノ ◆f0.zuburi6
2005/11/14(月) 01:11:30ID:SGvz0hKn0 でもコレだと高負荷時の挙動が怖いようなw
予想されるのは、
1000
1001 1000を超えました。。。
1002 普通の書き込み
とかで、終わるパターンすね。
chmod 555 は必ずするので、
壊れるリスクは今と同じのはず。
1000
1001 1000を超えました。。。
1002 普通の書き込み
とかで、終わるパターンすね。
chmod 555 は必ずするので、
壊れるリスクは今と同じのはず。
2005/11/14(月) 01:18:48ID:zmjS5IW10
あ、そっか。
まず書き込みをして、それから書けたかどうか判定するのか。
と思ったけど、>>184の5行目の()内が間違いで
(==最終レスを書き込んだのが自分であった場合のみ)
が正しいのかな。
とは言っても、「再読込」した後で他のプロセスが書き込んじゃうという
可能性もある(というより、現状その状態っぽい?)ので
複数プロセスがが1001を書き込むのは避けられない点は同じか。
まず書き込みをして、それから書けたかどうか判定するのか。
と思ったけど、>>184の5行目の()内が間違いで
(==最終レスを書き込んだのが自分であった場合のみ)
が正しいのかな。
とは言っても、「再読込」した後で他のプロセスが書き込んじゃうという
可能性もある(というより、現状その状態っぽい?)ので
複数プロセスがが1001を書き込むのは避けられない点は同じか。
193▲ ◆cZfSunOs.U
2005/11/14(月) 01:19:56ID:tChr8Idl0 確実にやるにはロックなどで排他制御するしかないでしょうね.
ロック使用を回避するなら,わずかでもタイミングの隙が発生するのは不可抗力かと......
ロック使用を回避するなら,わずかでもタイミングの隙が発生するのは不可抗力かと......
>>195
おおっ そんなのあるんですか、
おおっ そんなのあるんですか、
197ヾ(゚パ)ノ ◆f0.zuburi6
2005/11/14(月) 01:28:43ID:SGvz0hKn0 むずかしいー
1000時のみロックとかできないんでしょうかー
とか思ってしまいますです
まあ,1000以降で実際に書き込まれないならいいかな なんて思ったりもしますがw
1000時のみロックとかできないんでしょうかー
とか思ってしまいますです
まあ,1000以降で実際に書き込まれないならいいかな なんて思ったりもしますがw
2005/11/14(月) 01:30:04ID:zmjS5IW10
ん?現状でも、既に
AとBが両方書き込んだ後、
A:読み込み(.datは1000行)
B:読み込み(.datは1000行)
A:1001書き込み(.datは1001行)
B:1001書き込み(.datは1002行)
という経過によって、複数の1001が書かれているのではないですか?
とすると、読み込んだ内容をどう判定しようと
重複1001は減らないのでは?
AとBが両方書き込んだ後、
A:読み込み(.datは1000行)
B:読み込み(.datは1000行)
A:1001書き込み(.datは1001行)
B:1001書き込み(.datは1002行)
という経過によって、複数の1001が書かれているのではないですか?
とすると、読み込んだ内容をどう判定しようと
重複1001は減らないのでは?
199ヾ(゚パ)ノ ◆f0.zuburi6
2005/11/14(月) 01:34:41ID:SGvz0hKn0 こんなの?
$lastdat = "1001<><>Over 1000 Thread<> $b1000 <>\n";
# 既に1001が書いてあったら、書くのをやめる
if ($GB->{DATLAST}[-1] ne $lastdat)
{
# 1001書き込み処理
if(open(OUT,">>$dat"))
{
print OUT $lastdat;
close(OUT);
# $GBの処理
# datの番号をひとつすすめる
++$GB->{DATNUM};
# $GB->{DATLAST}をひとつ押し出す
shift(@{$GB->{DATLAST}});
push(@{$GB->{DATLAST}}, $lastdat);
}
}
# datを書けなくする
umask(0);
chmod(0555, $dat);
return 0;
$lastdat = "1001<><>Over 1000 Thread<> $b1000 <>\n";
# 既に1001が書いてあったら、書くのをやめる
if ($GB->{DATLAST}[-1] ne $lastdat)
{
# 1001書き込み処理
if(open(OUT,">>$dat"))
{
print OUT $lastdat;
close(OUT);
# $GBの処理
# datの番号をひとつすすめる
++$GB->{DATNUM};
# $GB->{DATLAST}をひとつ押し出す
shift(@{$GB->{DATLAST}});
push(@{$GB->{DATLAST}}, $lastdat);
}
}
# datを書けなくする
umask(0);
chmod(0555, $dat);
return 0;
203ヾ(゚パ)ノ ◆f0.zuburi6
2005/11/14(月) 01:52:59ID:SGvz0hKn0 おおーなんとなく流れはわかる
2005/11/14(月) 01:53:29ID:vBIRRhl/0
$GB->{DATLAST} は配列のリファレンスなので
$GB->{DATLAST}[-1] でなく $GB->{DATLAST}->[-1] かと
$GB->{DATLAST}[-1] でなく $GB->{DATLAST}->[-1] かと
205▲ ◆cZfSunOs.U
2005/11/14(月) 02:00:20ID:tChr8Idl0 umask() は open() や mkdir() には影響しますが,chmod() には影響しないので不要ですね.
むしろない方が chmod() の実行タイミングがわずかながら早くなって,その分隙は減るかと.
むしろない方が chmod() の実行タイミングがわずかながら早くなって,その分隙は減るかと.
>>205
なくすです。
なくすです。
http://qb6.2ch.net/test/read.cgi/operate2/1131891346/
ちょっとliveanbから1000いったやつを持ってきて、
2つ削って試してみた。
とりあえず、通常処理には影響なさげ。
ちょっとliveanbから1000いったやつを持ってきて、
2つ削って試してみた。
とりあえず、通常処理には影響なさげ。
で、上のほうにも書きましたが、
何かのタイミングで、
1000 普通のレス
1001 1000を超えました。
1002 普通のレス
みたいなことが、起こるかもですね。
chmod() はするので、止まりはするはずですが。
何かのタイミングで、
1000 普通のレス
1001 1000を超えました。
1002 普通のレス
みたいなことが、起こるかもですね。
chmod() はするので、止まりはするはずですが。
212root▲ ★
NGNG # 051114a 雪だるまに向けたクリーンナップ大作戦 その7
# NotifyBBY, NotifyBBS, SuretateTotalCheck サブルーチン化
# これで雪だるまに向けたbbs_mainのコンパクト化はほぼ終了、長かった by む
# NotifyBBY, NotifyBBS, SuretateTotalCheck サブルーチン化
# これで雪だるまに向けたbbs_mainのコンパクト化はほぼ終了、長かった by む
2005/11/14(月) 08:03:04ID:Ggx4DB2VO
$#array
要素数-1を返す
一応…
要素数-1を返す
一応…
214桶屋
2005/11/14(月) 08:40:00ID:TwePZ4IU0215桶屋
2005/11/14(月) 08:45:17ID:TwePZ4IU0 >>211
技術はひとまず置いておいて、これは本当にオッケーですか?
スレッドが終端しない=一番最後に1001の書き込みがないと、
ユーザーがずっと書き込もうと行動し続ける気がするのですけど……。
速い時ほど、そんなことが起きる気がします。
技術はひとまず置いておいて、これは本当にオッケーですか?
スレッドが終端しない=一番最後に1001の書き込みがないと、
ユーザーがずっと書き込もうと行動し続ける気がするのですけど……。
速い時ほど、そんなことが起きる気がします。
二年ほど前「もう timecount/timecloseは必要ないだろ」と思いはずしたことがあります。
結果はぼろぼろで、あわてて元に戻しました。
連投あらしのオンパレードでした。
それも低速タイプのやつ。(2ちゃんねるのほとんどの板は低速です)
結果はぼろぼろで、あわてて元に戻しました。
連投あらしのオンパレードでした。
それも低速タイプのやつ。(2ちゃんねるのほとんどの板は低速です)
2005/11/14(月) 10:33:47ID:CMiI899X0
2005/11/14(月) 10:43:05ID:coSAVKKv0
そういう自動書き込みスクリプト(繋ぎ換えまで一緒にやるようなの)は、
まだゴロゴロしてますからね。。
繋ぎ変えは、もう一歩技術がいるようですけど(プロバイダによるし)、
スクリプト自体は、厨房でも設定可能なレベルみたいですし。
特にタイマー式は厄介(自動確認式もあるし。新規投稿が1回あったら
数回AAを自動投稿するとか。進行遅いスレだと、それだけで簡単に潰せる)。
まだゴロゴロしてますからね。。
繋ぎ変えは、もう一歩技術がいるようですけど(プロバイダによるし)、
スクリプト自体は、厨房でも設定可能なレベルみたいですし。
特にタイマー式は厄介(自動確認式もあるし。新規投稿が1回あったら
数回AAを自動投稿するとか。進行遅いスレだと、それだけで簡単に潰せる)。
219root▲ ★
NGNG >>215
1001メッセージは合成不可能なので、一つは書かれるはずと。
で、どうせそのスレには書けなくなるので、移行していただけると信じているです。
# でも、1001で終わってないスレは、ちょっと気持ち悪いかも。
1001メッセージは合成不可能なので、一つは書かれるはずと。
で、どうせそのスレには書けなくなるので、移行していただけると信じているです。
# でも、1001で終わってないスレは、ちょっと気持ち悪いかも。
2005/11/14(月) 21:08:02ID:p8c0EbPl0
すごいの出ちゃったみたいなのなの
http://ex10.2ch.net/test/read.cgi/news4vip/1131958980/
http://ex10.2ch.net/test/read.cgi/news4vip/1131958980/
221ヾ(゚パ)ノ ◆f0.zuburi6
2005/11/14(月) 21:21:05ID:SGvz0hKn0 ありゃ…やっぱり普通のがよかったのかしら
222どくどくさぼてん
2005/11/14(月) 21:23:04ID:E7BBAaWz0 そこは秒間20回とか書き込んでる馬鹿がいるからっぽいし、
そんなもんでいいんじゃないっすかねぇ。
まぁ、あれで止まってるほうがよかったって感じで。
そんなもんでいいんじゃないっすかねぇ。
まぁ、あれで止まってるほうがよかったって感じで。
2005/11/14(月) 21:40:34ID:Ggx4DB2VO
Sambaは?
224▲ ◆cZfSunOs.U
2005/11/14(月) 22:30:02ID:tChr8Idl0 まぁ bbsd 版ではそれぐらいのでもちゃんと止まる......と思います.
2005/11/14(月) 23:41:49ID:sUaCAHF20
1001いってるスレなのにsubject.txtでは999で止まってるのがあるね
2005/11/14(月) 23:45:09ID:wu7j9nOG0
バグがいっぱいorz
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【中居正広騒動】NTT東日本、アフラックなどフジCM差し止め…各社に拡大 ★2 [Ailuropoda melanoleuca★]
- 【神奈川】走行中の電車内で医師がアイスピック突きつけ「これ以上せきをしたら●すぞ」…相手の自衛隊員に取り押さえられる [Ailuropoda melanoleuca★]
- 【米国】「1人ディズニー」を楽しむ男性に、女性客が「気味が悪い」... [少考さん★]
- 山田邦子 フジ・港社長会見を評価「売れっ子タレントがチヤホヤされるのは当たり前」 [シコリアン★]
- 日本センター停止の可能性 ロシア政府発表、友好象徴 [蚤の市★]
- カンニング竹山「社員の人権どうなる?」中居問題で私見「一部週刊誌の記事が真実のように…真実かわからない」「冷静に見守るしか」 [Anonymous★]
- ウクライナの最前線ハルキウでボランティアを続けゼレンスキーから叙勲もされた日本人男性、国外退去「もうこの国に未練はない」 [599639466]
- 【悲報】フジテレビさん、1番組内でACが12回も流れる異常事態 [455679766]
- NTT東日本、アフラック生命保険、フジテレビCM差し止め表明 [126042664]
- ルーナ姫のお🏡💕 ★2
- セブン「この弁当廃棄するんであげますよ^∇^(;´ん`)「貰うの恥ずかしなあ。やめとこ」👈これまじでケンモメンの悪いとこだよ [316257979]
- 「これ以上せきをしたら殺すぞ」59歳医師、電車内で19歳男性(自衛隊員)にアイスピック突きつけ逆に取り押さえられる。なんだよこの事件 [399583221]