Mercurial > hg > nginx
view auto/types/sizeof @ 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 | 400711951595 |
children | d620f497c50f |
line wrap: on
line source
# Copyright (C) Igor Sysoev echo $ngx_n "checking for $ngx_type size ...$ngx_c" cat << END >> $NGX_AUTOCONF_ERR ---------------------------------------- checking for $ngx_type size END ngx_size= cat << END > $NGX_AUTOTEST.c #include <sys/types.h> #include <sys/time.h> $NGX_INCLUDE_UNISTD_H #include <signal.h> #include <sys/resource.h> $NGX_INCLUDE_INTTYPES_H $NGX_INCLUDE_AUTO_CONFIG_H int main() { printf("%d", sizeof($ngx_type)); return 0; } END ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \ -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs" eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1" if [ -x $NGX_AUTOTEST ]; then ngx_size=`$NGX_AUTOTEST` echo " $ngx_size bytes" fi rm -f $NGX_AUTOTEST case $ngx_size in 4) if [ "$ngx_type"="long" ]; then ngx_max_value=2147483647L else ngx_max_value=2147483647 fi ngx_max_len='(sizeof("-2147483648") - 1)' ;; 8) if [ "$ngx_type"="long long" ]; then ngx_max_value=9223372036854775807LL else ngx_max_value=9223372036854775807L fi ngx_max_len='(sizeof("-9223372036854775808") - 1)' ;; *) echo echo "$0: error: can not detect $ngx_type size" echo "----------" >> $NGX_AUTOCONF_ERR cat $NGX_AUTOTEST.c >> $NGX_AUTOCONF_ERR echo "----------" >> $NGX_AUTOCONF_ERR echo $ngx_test >> $NGX_AUTOCONF_ERR echo "----------" >> $NGX_AUTOCONF_ERR exit 1 esac