Commit e21103f2 authored by Michał Kępień's avatar Michał Kępień Committed by Ondřej Surý
Browse files

Fix statistics for x86 Windows builds

Using atomic_int_fast64_t variables with atomic functions on x86 does
not cause Visual Studio to report build errors, but such operations
yield useless results.  Since the isc_stat_t type is unconditionally
typedef'd to atomic_int_fast64_t, any code performing atomic operations
on isc_stat_t variables is broken in x86 Windows builds.  Fix by using
the atomic_int_fast32_t type for isc_stat_t in x86 Windows builds.
parent 9e499ddb
......@@ -15352,6 +15352,15 @@ HOST-127.EXAMPLE. MX 0 .
<acronym>BIND</acronym> 8 statistics, if applicable.
</para>
 
<para>
Note: BIND statistics counters are signed 64-bit values on
all platforms except one: 32-bit Windows, where they are
signed 32-bit values. Given that 32-bit values have a
vastly smaller range than 64-bit values, BIND statistics
counters in 32-bit Windows builds overflow significantly
more quickly than on all other platforms.
</para>
<section xml:id="stats_counters"><info><title>Name Server Statistics Counters</title></info>
 
<informaltable colsep="0" rowsep="0">
......
......@@ -28,7 +28,11 @@
#define ISC_STATS_MAGIC ISC_MAGIC('S', 't', 'a', 't')
#define ISC_STATS_VALID(x) ISC_MAGIC_VALID(x, ISC_STATS_MAGIC)
#if defined(_WIN32) && !defined(_WIN64)
typedef atomic_int_fast32_t isc_stat_t;
#else
typedef atomic_int_fast64_t isc_stat_t;
#endif
struct isc_stats {
unsigned int magic;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment