Mercurial > hg > nginx
annotate auto/threads @ 3755:76e3a93821b1
fix race condition if during reconfiguration two cache managers try
to delete old inactive entries: one of them removes a entry just locked by
other manager from the queue and the rbtree as long inactive entry,
causes the latter manager to segfault leaving cache mutex locked,
the bug has been introduced in r3727
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Thu, 02 Sep 2010 14:31:47 +0000 |
parents | 458b6c3fea65 |
children |
rev | line source |
---|---|
444
42d11f017717
nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
Igor Sysoev <igor@sysoev.ru>
parents:
382
diff
changeset
|
1 |
42d11f017717
nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
Igor Sysoev <igor@sysoev.ru>
parents:
382
diff
changeset
|
2 # Copyright (C) Igor Sysoev |
42d11f017717
nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
Igor Sysoev <igor@sysoev.ru>
parents:
382
diff
changeset
|
3 |
266
5238e93961a1
nginx-0.0.2-2004-02-23-23:57:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
4 |
376
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
5 case $USE_THREADS in |
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
6 rfork) |
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
7 have=NGX_THREADS . auto/have |
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
8 have=NGX_USE_RFORK . auto/have |
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
9 CORE_DEPS="$CORE_DEPS $FREEBSD_RFORK_DEPS" |
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
10 CORE_SRCS="$CORE_SRCS $FREEBSD_RFORK_SRCS" |
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
11 |
493 | 12 case "$NGX_PLATFORM" in |
376
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
13 *:i386) |
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
14 if [ \( $version -gt 500000 -a $version -lt 501000 \) \ |
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
15 -o $version -lt 491000 ] |
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
16 then |
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
17 CORE_SRCS="$CORE_SRCS $FREEBSD_RFORK_THREAD_SRCS" |
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
18 fi |
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
19 ;; |
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
20 esac |
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
21 ;; |
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
22 |
457 | 23 pthreads) |
376
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
24 have=NGX_THREADS . auto/have |
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
25 CORE_SRCS="$CORE_SRCS $PTHREAD_SRCS" |
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
26 CORE_LIBS="$CORE_LIBS -lpthread" |
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
27 ;; |
267
83205e0b5522
nginx-0.0.2-2004-02-24-20:31:46 import
Igor Sysoev <igor@sysoev.ru>
parents:
266
diff
changeset
|
28 |
457 | 29 libthr) |
376
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
30 have=NGX_THREADS . auto/have |
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
31 CORE_SRCS="$CORE_SRCS $PTHREAD_SRCS" |
457 | 32 CORE_LIBS="$CORE_LIBS -lthr" |
376
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
33 ;; |
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
34 |
382
449c4885dcd1
nginx-0.0.7-2004-07-07-23:48:31 import
Igor Sysoev <igor@sysoev.ru>
parents:
376
diff
changeset
|
35 linuxthreads) |
449c4885dcd1
nginx-0.0.7-2004-07-07-23:48:31 import
Igor Sysoev <igor@sysoev.ru>
parents:
376
diff
changeset
|
36 have=NGX_THREADS . auto/have |
449c4885dcd1
nginx-0.0.7-2004-07-07-23:48:31 import
Igor Sysoev <igor@sysoev.ru>
parents:
376
diff
changeset
|
37 have=NGX_LINUXTHREADS . auto/have |
449c4885dcd1
nginx-0.0.7-2004-07-07-23:48:31 import
Igor Sysoev <igor@sysoev.ru>
parents:
376
diff
changeset
|
38 CFLAGS="$CFLAGS -D_THREAD_SAFE" |
449c4885dcd1
nginx-0.0.7-2004-07-07-23:48:31 import
Igor Sysoev <igor@sysoev.ru>
parents:
376
diff
changeset
|
39 CFLAGS="$CFLAGS -I /usr/local/include/pthread/linuxthreads" |
449c4885dcd1
nginx-0.0.7-2004-07-07-23:48:31 import
Igor Sysoev <igor@sysoev.ru>
parents:
376
diff
changeset
|
40 CORE_SRCS="$CORE_SRCS $PTHREAD_SRCS" |
449c4885dcd1
nginx-0.0.7-2004-07-07-23:48:31 import
Igor Sysoev <igor@sysoev.ru>
parents:
376
diff
changeset
|
41 CORE_LIBS="$CORE_LIBS -L /usr/local/lib -llthread -llgcc_r" |
449c4885dcd1
nginx-0.0.7-2004-07-07-23:48:31 import
Igor Sysoev <igor@sysoev.ru>
parents:
376
diff
changeset
|
42 ;; |
449c4885dcd1
nginx-0.0.7-2004-07-07-23:48:31 import
Igor Sysoev <igor@sysoev.ru>
parents:
376
diff
changeset
|
43 |
457 | 44 libc_r) |
493 | 45 case "$NGX_PLATFORM" in |
457 | 46 FreeBSD:[34]*) |
47 have=NGX_THREADS . auto/have | |
48 CFLAGS="$CFLAGS -pthread" | |
49 CORE_SRCS="$CORE_SRCS $PTHREAD_SRCS" | |
50 CORE_LIBS="$CORE_LIBS -pthread" | |
51 ;; | |
52 | |
571 | 53 FreeBSD:[56]*) |
457 | 54 have=NGX_THREADS . auto/have |
55 CORE_SRCS="$CORE_SRCS $PTHREAD_SRCS" | |
56 CORE_LIBS="$CORE_LIBS -lc_r" | |
57 ;; | |
58 esac | |
376
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
59 ;; |
267
83205e0b5522
nginx-0.0.2-2004-02-24-20:31:46 import
Igor Sysoev <igor@sysoev.ru>
parents:
266
diff
changeset
|
60 |
457 | 61 NO) |
62 ;; | |
63 | |
64 *) | |
376
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
65 have=NGX_THREADS . auto/have |
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
66 CORE_SRCS="$CORE_SRCS $PTHREAD_SRCS" |
457 | 67 CORE_LIBS="$CORE_LIBS -l$USE_THREADS" |
376
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
68 ;; |
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
69 |
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
270
diff
changeset
|
70 esac |