comparison src/core/ngx_palloc.c @ 10:46833bd150cb NGINX_0_1_5

nginx 0.1.5 *) Bugfix: on Solaris and Linux there may be too many "recvmsg() returned not enough data" alerts. *) Bugfix: there were the "writev() failed (22: Invalid argument)" errors on Solaris in proxy mode without sendfile. On other platforms that do not support sendfile at all the process got caught in an endless loop. *) Bugfix: segmentation fault on Solaris in proxy mode and using sendfile. *) Bugfix: segmentation fault on Solaris. *) Bugfix: on-line upgrade did not work on Linux. *) Bugfix: the ngx_http_autoindex_module module did not escape the spaces, the quotes, and the percent signs in the directory listing. *) Change: the decrease of the copy operations. *) Feature: the userid_p3p directive.
author Igor Sysoev <http://sysoev.ru>
date Thu, 11 Nov 2004 00:00:00 +0300
parents cc9f381affaa
children 45fe5b98a9de
comparison
equal deleted inserted replaced
9:77eee314ddbd 10:46833bd150cb
31 ngx_pool_t *p, *n; 31 ngx_pool_t *p, *n;
32 ngx_pool_large_t *l; 32 ngx_pool_large_t *l;
33 33
34 for (l = pool->large; l; l = l->next) { 34 for (l = pool->large; l; l = l->next) {
35 35
36 ngx_log_debug1(NGX_LOG_DEBUG_ALLOC, pool->log, 0, 36 ngx_log_debug1(NGX_LOG_DEBUG_ALLOC, pool->log, 0, "free: %p", l->alloc);
37 "free: " PTR_FMT, l->alloc);
38 37
39 if (l->alloc) { 38 if (l->alloc) {
40 free(l->alloc); 39 free(l->alloc);
41 } 40 }
42 } 41 }
48 * so we can not use this log while the free()ing the pool 47 * so we can not use this log while the free()ing the pool
49 */ 48 */
50 49
51 for (p = pool, n = pool->next; /* void */; p = n, n = n->next) { 50 for (p = pool, n = pool->next; /* void */; p = n, n = n->next) {
52 ngx_log_debug2(NGX_LOG_DEBUG_ALLOC, pool->log, 0, 51 ngx_log_debug2(NGX_LOG_DEBUG_ALLOC, pool->log, 0,
53 "free: " PTR_FMT ", unused: " SIZE_T_FMT, 52 "free: %p, unused: %uz", p, p->end - p->last);
54 p, p->end - p->last);
55 53
56 if (n == NULL) { 54 if (n == NULL) {
57 break; 55 break;
58 } 56 }
59 } 57 }
162 ngx_pool_large_t *l; 160 ngx_pool_large_t *l;
163 161
164 for (l = pool->large; l; l = l->next) { 162 for (l = pool->large; l; l = l->next) {
165 if (p == l->alloc) { 163 if (p == l->alloc) {
166 ngx_log_debug1(NGX_LOG_DEBUG_ALLOC, pool->log, 0, 164 ngx_log_debug1(NGX_LOG_DEBUG_ALLOC, pool->log, 0,
167 "free: " PTR_FMT, l->alloc); 165 "free: %p", l->alloc);
168 free(l->alloc); 166 free(l->alloc);
169 l->alloc = NULL; 167 l->alloc = NULL;
170 168
171 return NGX_OK; 169 return NGX_OK;
172 } 170 }