今日もコードリーディング。
昨日のつづきで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 コメント:
コメントを投稿