Mercurial > hg > nginx
annotate src/os/unix/ngx_alloc.c @ 5104:93713d4b99c3
Removed c->single_connection flag.
The c->single_connection was intended to be used as lock mechanism
to serialize modifications of request object from several threads
working with client and upstream connections. The flag is redundant
since threads in nginx have never been used that way.
author | Valentin Bartenev <vbart@nginx.com> |
---|---|
date | Thu, 07 Mar 2013 18:07:16 +0000 |
parents | d620f497c50f |
children |
rev | line source |
---|---|
441
da8c5707af39
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents:
347
diff
changeset
|
1 |
da8c5707af39
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents:
347
diff
changeset
|
2 /* |
444
42d11f017717
nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
Igor Sysoev <igor@sysoev.ru>
parents:
441
diff
changeset
|
3 * Copyright (C) Igor Sysoev |
4412 | 4 * Copyright (C) Nginx, Inc. |
441
da8c5707af39
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents:
347
diff
changeset
|
5 */ |
da8c5707af39
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents:
347
diff
changeset
|
6 |
346
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
7 |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
8 #include <ngx_config.h> |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
9 #include <ngx_core.h> |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
10 |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
11 |
860
201d017ea470
slab allocator in shared memory
Igor Sysoev <igor@sysoev.ru>
parents:
589
diff
changeset
|
12 ngx_uint_t ngx_pagesize; |
201d017ea470
slab allocator in shared memory
Igor Sysoev <igor@sysoev.ru>
parents:
589
diff
changeset
|
13 ngx_uint_t ngx_pagesize_shift; |
589 | 14 ngx_uint_t ngx_cacheline_size; |
346
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
15 |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
16 |
501 | 17 void * |
18 ngx_alloc(size_t size, ngx_log_t *log) | |
346
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
19 { |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
20 void *p; |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
21 |
501 | 22 p = malloc(size); |
23 if (p == NULL) { | |
346
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
24 ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, |
3321
93e8daca5dbb
update allocation error messages
Igor Sysoev <igor@sysoev.ru>
parents:
3320
diff
changeset
|
25 "malloc(%uz) failed", size); |
346
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
26 } |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
27 |
461 | 28 ngx_log_debug2(NGX_LOG_DEBUG_ALLOC, log, 0, "malloc: %p:%uz", p, size); |
346
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
29 |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
30 return p; |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
31 } |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
32 |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
33 |
501 | 34 void * |
35 ngx_calloc(size_t size, ngx_log_t *log) | |
346
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
36 { |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
37 void *p; |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
38 |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
39 p = ngx_alloc(size, log); |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
40 |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
41 if (p) { |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
42 ngx_memzero(p, size); |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
43 } |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
44 |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
45 return p; |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
46 } |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
47 |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
48 |
469 | 49 #if (NGX_HAVE_POSIX_MEMALIGN) |
346
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
50 |
501 | 51 void * |
52 ngx_memalign(size_t alignment, size_t size, ngx_log_t *log) | |
346
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
53 { |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
54 void *p; |
3320
d4ad1b0b6c8d
fix posix_memalign() error handling
Igor Sysoev <igor@sysoev.ru>
parents:
860
diff
changeset
|
55 int err; |
346
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
56 |
3320
d4ad1b0b6c8d
fix posix_memalign() error handling
Igor Sysoev <igor@sysoev.ru>
parents:
860
diff
changeset
|
57 err = posix_memalign(&p, alignment, size); |
d4ad1b0b6c8d
fix posix_memalign() error handling
Igor Sysoev <igor@sysoev.ru>
parents:
860
diff
changeset
|
58 |
d4ad1b0b6c8d
fix posix_memalign() error handling
Igor Sysoev <igor@sysoev.ru>
parents:
860
diff
changeset
|
59 if (err) { |
d4ad1b0b6c8d
fix posix_memalign() error handling
Igor Sysoev <igor@sysoev.ru>
parents:
860
diff
changeset
|
60 ngx_log_error(NGX_LOG_EMERG, log, err, |
3321
93e8daca5dbb
update allocation error messages
Igor Sysoev <igor@sysoev.ru>
parents:
3320
diff
changeset
|
61 "posix_memalign(%uz, %uz) failed", alignment, size); |
3320
d4ad1b0b6c8d
fix posix_memalign() error handling
Igor Sysoev <igor@sysoev.ru>
parents:
860
diff
changeset
|
62 p = NULL; |
346
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
63 } |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
64 |
3343
3051e512e301
fix building without --with-debug, introduced in r3328
Igor Sysoev <igor@sysoev.ru>
parents:
3327
diff
changeset
|
65 ngx_log_debug3(NGX_LOG_DEBUG_ALLOC, log, 0, |
3327 | 66 "posix_memalign: %p:%uz @%uz", p, size, alignment); |
346
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
67 |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
68 return p; |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
69 } |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
70 |
469 | 71 #elif (NGX_HAVE_MEMALIGN) |
346
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
72 |
501 | 73 void * |
74 ngx_memalign(size_t alignment, size_t size, ngx_log_t *log) | |
346
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
75 { |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
76 void *p; |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
77 |
501 | 78 p = memalign(alignment, size); |
79 if (p == NULL) { | |
346
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
80 ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, |
3321
93e8daca5dbb
update allocation error messages
Igor Sysoev <igor@sysoev.ru>
parents:
3320
diff
changeset
|
81 "memalign(%uz, %uz) failed", alignment, size); |
346
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
82 } |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
83 |
3343
3051e512e301
fix building without --with-debug, introduced in r3328
Igor Sysoev <igor@sysoev.ru>
parents:
3327
diff
changeset
|
84 ngx_log_debug3(NGX_LOG_DEBUG_ALLOC, log, 0, |
3327 | 85 "memalign: %p:%uz @%uz", p, size, alignment); |
346
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
86 |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
87 return p; |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
88 } |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
89 |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
90 #endif |