Mercurial > hg > nginx-vendor-0-6
annotate src/core/ngx_slab.h @ 376:d13234035cad NGINX_0_6_32
nginx 0.6.32
*) Change: the "none" parameter in the "ssl_session_cache" directive;
now this is default parameter.
Thanks to Rob Mueller.
*) Change: now the 0x00-0x1F, '"' and '\' characters are escaped as
\xXX in an access_log.
Thanks to Maxim Dounin.
*) Change: now nginx allows several "Host" request header line.
*) Feature: the "modified" flag in the "expires" directive.
*) Feature: the $uid_got and $uid_set variables may be used at any
request processing stage.
*) Feature: the $hostname variable.
Thanks to Andrei Nigmatulin.
*) Feature: DESTDIR support.
Thanks to Todd A. Fisher and Andras Voroskoi.
*) Bugfix: if sub_filter and SSI were used together, then responses
might were transferred incorrectly.
*) Bugfix: large SSI inclusions might be truncated.
*) Bugfix: the "proxy_pass" directive did not work with the HTTPS
protocol; the bug had appeared in 0.6.9.
*) Bugfix: worker processes might not catch reconfiguration and log
rotation signals.
*) Bugfix: nginx could not be built on latest Fedora 9 Linux.
Thanks to Roxis.
*) Bugfix: a segmentation fault might occur in worker process on Linux,
if keepalive was enabled.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 07 Jul 2008 00:00:00 +0400 |
parents | 29a6403156b0 |
children |
rev | line source |
---|---|
258 | 1 |
2 /* | |
3 * Copyright (C) Igor Sysoev | |
4 */ | |
5 | |
6 | |
7 #ifndef _NGX_SLAB_H_INCLUDED_ | |
8 #define _NGX_SLAB_H_INCLUDED_ | |
9 | |
10 | |
11 #include <ngx_config.h> | |
12 #include <ngx_core.h> | |
13 | |
14 | |
15 typedef struct ngx_slab_page_s ngx_slab_page_t; | |
16 | |
17 struct ngx_slab_page_s { | |
18 uintptr_t slab; | |
19 ngx_slab_page_t *next; | |
20 uintptr_t prev; | |
21 }; | |
22 | |
23 | |
24 typedef struct { | |
25 ngx_atomic_t lock; | |
26 | |
27 size_t min_size; | |
28 size_t min_shift; | |
29 | |
30 ngx_slab_page_t *pages; | |
31 ngx_slab_page_t free; | |
32 | |
33 u_char *start; | |
34 u_char *end; | |
35 | |
36 ngx_shmtx_t mutex; | |
37 } ngx_slab_pool_t; | |
38 | |
39 | |
40 void ngx_slab_init(ngx_slab_pool_t *pool); | |
41 void *ngx_slab_alloc(ngx_slab_pool_t *pool, size_t size); | |
272 | 42 void *ngx_slab_alloc_locked(ngx_slab_pool_t *pool, size_t size); |
258 | 43 void ngx_slab_free(ngx_slab_pool_t *pool, void *p); |
272 | 44 void ngx_slab_free_locked(ngx_slab_pool_t *pool, void *p); |
258 | 45 |
46 | |
47 #endif /* _NGX_SLAB_H_INCLUDED_ */ |