# HG changeset patch # User Igor Sysoev # Date 1166218263 0 # Node ID 45df22906c1201fea8013dc40ec6cde537d6724a # Parent 1adfc55bb6dcb1a1248d7c47c389aeb360f25f98 allocate aligned ngx_crc32_table_short globally diff --git a/src/core/nginx.c b/src/core/nginx.c --- a/src/core/nginx.c +++ b/src/core/nginx.c @@ -252,6 +252,12 @@ main(int argc, char *const *argv) return 1; } + /* ngx_crc32_init() requires ngx_cacheline_size set in ngx_os_init() */ + + if (ngx_crc32_init() != NGX_OK) { + return 1; + } + if (ngx_add_inherited_sockets(&init_cycle) != NGX_OK) { return 1; } @@ -283,10 +289,6 @@ main(int argc, char *const *argv) ngx_os_status(cycle->log); - if (ngx_crc32_init(cycle->pool) != NGX_OK) { - return 1; - } - ngx_cycle = cycle; ccf = (ngx_core_conf_t *) ngx_get_conf(cycle->conf_ctx, ngx_core_module); diff --git a/src/core/ngx_crc32.c b/src/core/ngx_crc32.c --- a/src/core/ngx_crc32.c +++ b/src/core/ngx_crc32.c @@ -102,7 +102,7 @@ uint32_t *ngx_crc32_table_short = ngx_cr ngx_int_t -ngx_crc32_init(ngx_pool_t *pool) +ngx_crc32_init(void) { void *p; @@ -113,7 +113,7 @@ ngx_crc32_init(ngx_pool_t *pool) return NGX_OK; } - p = ngx_palloc(pool, 16 * sizeof(uint32_t) + ngx_cacheline_size); + p = ngx_alloc(16 * sizeof(uint32_t) + ngx_cacheline_size, ngx_cycle->log); if (p == NULL) { return NGX_ERROR; } diff --git a/src/core/ngx_crc32.h b/src/core/ngx_crc32.h --- a/src/core/ngx_crc32.h +++ b/src/core/ngx_crc32.h @@ -49,7 +49,7 @@ ngx_crc32_long(u_char *p, size_t len) } -ngx_int_t ngx_crc32_init(ngx_pool_t *pool); +ngx_int_t ngx_crc32_init(void); #endif /* _NGX_CRC32_H_INCLUDED_ */