mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-12 07:30:02 -04:00
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.
(cherry picked from commit e21103f2d3)
This commit is contained in:
parent
095cfa32a3
commit
de65b8f0f8
2 changed files with 13 additions and 0 deletions
|
|
@ -15358,6 +15358,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">
|
||||
|
|
|
|||
|
|
@ -30,7 +30,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;
|
||||
|
|
|
|||
Loading…
Reference in a new issue