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.
This commit is contained in:
committed by
Ondřej Surý
parent
9e499ddbf6
commit
e21103f2d3
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user