メモ代わり。てきとーに。 いや、ですからてきとーですって。 2年前ぐらいにPythonあたりでメールくれた方、ごめんなさい。メール紛失してしまい無視した形になってしまいました。。。

2008年2月11日月曜日

[Apache][CodeReading] Apache2.2.8コードリーディング11日目

今日もコードリーディング。

昨日のつづきでapr_initialize()まわりを読んだ。

つくったページは、

  • APR_ENOMEM定数/Apache2.2.8
  • APR_OS_START_CANONERR定数/Apache2.2.8
  • APR_OS_START_USERERR定数/Apache2.2.8
  • APR_OS_START_STATUS定数/Apache2.2.8
  • APR_OS_ERRSPACE_SIZE定数/Apache2.2.8
  • APR_OS_START_ERROR定数/Apache2.2.8
  • SIZEOF_ALLOCATOR_Tマクロ/Apache2.2.8
  • APR_ALIGN_DEFAULTマクロ/Apache2.2.8
  • APR_ALIGNマクロ/Apache2.2.8
  • global_allocatorスタティック変数/Apache2.2.8
  • APR_POOL_DEBUG定数/Apache2.2.8
  • apr_pools_initializedスタティック変数/Apache2.2.8

定数が定数で定義されててsのまた定数が定数で・・・という繰り返しがちょろっと。

で、今日の本丸はapr_pool_initialize()/Apache2.2.8。
結局全部読めなかった。

global_allocatorにapr_allocator_t用の領域を確保して
0クリアしたところまで。
global_allocatorはglobalってついているのにスタティック変数。
きっとシステム全体のallocatorという意味か。


領域確保できなかったらAPR_ENOMEMを返すんだけど、
errno.hのENOMEMが定義されていなかったら、APRで独自に定義する。
でその値は620007。
システムの他のエラーコードと重ならないようにしていると思うんだけど、
「へぇ」という感じ。

まだまだアロケータの中身に到達していないのでなんともいえないが、
相変わらず面白そうだ。




.

0 コメント: