Friday 22 May 2009

ソース読み会二日目

Apacheの続きと、mysql を読みました。

Aapache のI/O系はwin32/beos/os2/unix のファイルが別。ifdef が少なくて良いです。

Apacheには、sendfile を使ったI/Oもあるんですが、Unix のsendfile が、OS毎に少しずつ異なっているらしく、ifdef の山。まぁ、仕方ないとは言えども。間違っているとは思う。

apr_palloc が大量に出て来る。それだったらGCの方がましな気もしないでもないです。明示的にdestoryしないで、pool 側を通信終了時に削除する方向らしい。

mysqlは、client/server の順に読んだんですが、事前にざっと見た印象通りボロボロのソース。fronend で char/unsigned char を混ぜて使っているとかありえないと思う。ad-hoc に追加していった感じで、関数名と中身が一致してないとか、#define test(a) ((a)?1:0) とか、巨大な関数とか... がっかりです。

No comments: