0038名無しさん@お腹いっぱい。
2018/05/23(水) 23:24:35.16ID:N16DDRJU0Jane Lovely
Jane Style 3つに共通するプログラムのミスについて。
procedure TDaemon.SynchroProcess;内
procedure ProcessLogger;
procedure ProcessCaller;の二種で。
ミューテックス所有直後tmpListを介して、self.reqListとself.savedReqListの参照を交換しているだけの行為(一応実体は2つ)。
ミューテックス解放後にsavedReqList.Clearを行っているので、
2つの別ワーカースレッドが追突 TDaemon.Post (かTDaemon.Log)しに来たらreqList.Addあたりでクラッシュしそう。
TStringList.Assign と TList.Assign とで一時変数 tmpList に割り当ててから、ミューテックス内で self.の方を.Clearすべきでは?
で最後にtmpList.Clearする。savedは廃止。
各オブジェクトのデストラクタの挙動とか知らないから間違ってたらごめん。
Jane Style4.00の問題
POST /v1/auth/ HTTP/1.0 大量ミス。
・Connection: keep-alive
→ closeにしよう。鯖のタイムアウトを待たず自分からコネクションを切断すれば、SSL関連リソースが解放される。
・Content-Type: Content-Type:
→ いつ直すの?今でしょ!
・メインスレッド(VCL)とワーカースレッドの両方がPOSTしている。解せない。
→ datを取りに行ったワーカー含め、これらのうち複数が同時に起動した時に固まりやすい。
・X-2ch-UA: JaneStyle/4.00
→ というわけで?POST毎にこの行が際限なく増える。変数スコープや再入のミス臭い。APIや浪人リトライの局所ループに注意。
・HTTP/1.0かHTTP/1.1を統一せよ。
・Proxyを使用する、における挙動は知らない。