atomic operations test-run

This commit is contained in:
Igor Sysoev 2009-11-27 22:00:39 +00:00
parent c0ce24e72d
commit c4cf77686e
2 changed files with 17 additions and 9 deletions

View File

@ -127,13 +127,18 @@ if [ "$NGX_PLATFORM" != win32 ]; then
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

View File

@ -13,15 +13,18 @@ else
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