-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathTODO
161 lines (115 loc) · 4.99 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
(written in euc-jp-unix) -*-text-*-
$Id: TODO,v 1.17 2001/09/04 08:21:35 2ch Exp $
・思いついたことを掻く。
・荒らし厳禁(w
・フォーマットは任意。
- * -
dat形式はtime_tなので、内部で処理するときはtime_t(もしくはlong)に変換
して持ち回ってもいいんじゃないかな? もちろん2038年問題は忘れてる。そも
そも2chが9月を超えて持つのか?
(6411)
imode対応は、漏れ的に放置気味になってるんで、どなたか落ち穂拾いお願い
するです。
(6411)
板ダイジェストには、板毎ヘッドラインの差込が必要だな…どこかに差込テキ
ストの仕様、落ちてないかしら。意図的にbbs.cgi(と思われるもの)の参照を
避けてるから…
(6411)
↑いろんな設定ファイル・差込ファイルのありかがわかった。でも、やるだけ
無駄になる可能性があるから、マターリ逝くよ…
(6411)
もうみんな知ってるとは思うけど、
M-x c-set-style linux
のスタイルが、現行のソースにいちばん合ってると
おもう。ちなみに漏れのデフォルトは gnu (鬱
(6411)
↑実は自分がそのスタイルだったり... linuxがスタイル一覧にないときは
(c-set-style "k&r") (setq c-basic-offset 8) してもよし。
(| --))
- * -
【USE_INDEX メモ】
まだあぼーんに対応していない。
排他制御が実戦でマトモに動くかどうかは検証していない。
まだ、十分な行インデクスを生成していない。生成させることは難しくない。
(6411)
【mmap(2)教室】
本格的にmmap(2) basedなコード書くのが初めてな漏れ。気づいたことを書くっ
す。っていうかこれまで標準Cライブラリしか使ってなかったからのー。
(6411)
* MAP_PRIVATEのときは、lengthで確保した領域は全部使用可能。た
ぶん、元々のファイル長を超えた部分は0のはず。
* MAP_SHAREDのとき、length 0のファイルに対しては、mmap()が成功
する。ただし、オフセット0 のアクセスすらsegmentation faultを
起こす。
↑読み込み用にmapしてるんなら、ファイルサイズ分を超えての
アクセスは常にまずいんでないかな? length=0なら当然先頭バイトは
長さ1ないとありえない場所だし。
↑なるほど、「アクセスできないアドレスを返す」ってのはそれは
それで直交性がある、と解釈するのね。ちなみに長さ1のファイル
に対しては、1ページ分読み書きできるようだ。もちろん1を超えた
領域への書き込みは捨てられるけど。(6411)
↑それはつまり、ページ単位で割り当てている点自体が実装上の
都合であって、そのサイズを格納できる最小のページ数を割り当て
ているんでしょう。ページサイズよりも細かい単位では、たまたま
page faultを発生させられないというだけで。
* MAP_SHAREDのとき、lengthを大きすぎる値を指定しても、ページ
(x86では4096バイト)きっかりマッピングされ、それを超えたアク
セスはsegmentation faultを受ける。
* もちろんmunmap(2)しなくても、close(2)しなくてもプロセス終了
時までにメモリに書いた内容はファイルに反映される。
* munmap(2)しないでclose(2)した場合でも、マップ領域は有効のよ
うだ。内部的実装では、mmap(2)のときに参照が増えてる?
FreeBSDのman参照した限りでは、「close(2)してもunmapされない」
と明記してあった。
* MAP_PRIVATEは、即座にcommitされるわけではないらしい。ページ
に書き込みしない限り、共有イメージが見えてしまうので、走査し
てる間に誰かがファイルをいじってしまったら、ちょっと鬱だ氏の
う
- * -
【部分取得とLast-Modifiedについて】
現在、Last-Modified(以降L-M)は、.datから取得しているが、chunk取得して
いる現状にそぐわないと考える。ただ、現状では、ファイルをナメてから
L-Mを求めるのは難しそうなので…どうしよう。
(6411)
- * -
【板ダイジェストとLast-Modifiedについて】
現在の実装では、/board/subject.txt のmtimeを返しているが、subject.txt
はsage進行の時は更新されないと思われるので、上位n個スレでsage進行が行
われているとき、正しいものが取れなくなる可能性はある。
| 新スクリプト(要するに今使っているbbs.cgi)では、
| sageレスも必ずレス数にカウントされるので、
| 並べ替えは起きないものの、subject.txtの更新は行われていると思われま
| す。
↑というタレコミがあった。
本来ありぬべき動作は、最新10スレのmtimeのうち、最新のものを返す
べきである。
(6411)
- * -
【カーネル資源・プロセス資源の後始末に関して】
ちょっと行儀悪いんだけど、グローバルヒープはいちいちfree()すると、効率
悪いと思う。対話型でも常駐サービスでもないCGIは、資源の開放はみーんな
カーネルに任せてしまってもいいんではないか? と漏れ的には思う。ちなみに
プロセス終了時、malloc()した空間をfree()してるわけではない。brkした部
分を関知せず、プロセスごと捨ててるハズ。
殊にmunmap(2)は、PTE(MMUのページテーブル)の解放を伴うため、TLB(MMUのペー
ジキャッシュ)がフラッシュされる。プロセス実行中にこれを行うのは、SMPシ
ステムの場合は決して軽い処理ではない。Linux-2.2だと、SMP周りは貧弱と認
識してる。なので、mmap(2)した領域は放ったらかしにしてるのだ。
XXX 詳しくは知らないんだけど、close(2)した後は、munmap()も一緒に行われ
るんではないかな? だとしたら、read openしたfdは放置しといた方が結果的
にベターかもしれぬ。どなたか突っ込み求む。
↑ウソ。少なくともFreeBSDでは、close(2)してもmunmap(2)されない。(6411)
気持ち悪いとは思うんだが、速やかに処理を終えるべきCGIと割り切って、な
るべく積極的に後始末をサボりたいんだが、どうだろう? って話題はちょっと
前にprog板にスレ立ってたような気もしたーり。
(6411)
- * -
/*
* どーでもいーんですが、Cソース中、
* read2ch.hだけEUCですな(藁
* ソースのdiff取るときにちょっと悲しいことが起きてしまう。
* どうしよ。個人的には全部EUCにできるなら
* したいところではある。(6411)
*/
連絡先
6411 mailto:webmaster@psychedance.com