Mercurial > hg > nginx
changeset 3366:b44a7159c5fb
atomic operations test-run
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Fri, 27 Nov 2009 22:00:39 +0000 |
parents | d518c65ff0d4 |
children | 568a854383f9 |
files | auto/cc/conf auto/lib/libatomic/conf |
diffstat | 2 files changed, 17 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/auto/cc/conf Wed Nov 25 18:03:59 2009 +0000 +++ b/auto/cc/conf Fri Nov 27 22:00:39 2009 +0000 @@ -127,13 +127,18 @@ ngx_feature="gcc builtin atomic operations" ngx_feature_name=NGX_HAVE_GCC_ATOMIC - ngx_feature_run=no + ngx_feature_run=yes ngx_feature_incs= ngx_feature_path= ngx_feature_libs= - ngx_feature_test="long n; - __sync_bool_compare_and_swap(&n, 0, 1); - __sync_fetch_and_add(&n, 1);" + ngx_feature_test="long n = 0; + if (!__sync_bool_compare_and_swap(&n, 0, 1)) + return 1; + if (__sync_fetch_and_add(&n, 1) != 1) + return 1; + if (n != 2) + return 1; + __sync_synchronize();" . auto/feature
--- a/auto/lib/libatomic/conf Wed Nov 25 18:03:59 2009 +0000 +++ b/auto/lib/libatomic/conf Fri Nov 27 22:00:39 2009 +0000 @@ -13,15 +13,18 @@ ngx_feature="atomic_ops library" ngx_feature_name=NGX_HAVE_LIBATOMIC - ngx_feature_run=no + ngx_feature_run=yes ngx_feature_incs="#include <atomic_ops.h>" ngx_feature_path= ngx_feature_libs="-latomic_ops" - ngx_feature_test="AO_t *n; - AO_compare_and_swap(n, 0, 1); - AO_fetch_and_add(n, 1); + ngx_feature_test="long n = 0; + if (!AO_compare_and_swap(&n, 0, 1)) + return 1; + if (AO_fetch_and_add(&n, 1) != 1) + return 1; + if (n != 2) + return 1; AO_nop();" - . auto/feature if [ $ngx_found = yes ]; then