REQUIRE(mctx != NULL);
now = isc_time_now();
- zone = isc_mem_get(mctx, sizeof(*zone));
+ zone = isc_mem_getx(mctx, sizeof(*zone),
+ ISC_MEM_ALIGN(ISC_OS_CACHELINE_SIZE));
*zone = (dns_zone_t){
.masterformat = dns_masterformat_none,
.journalsize = -1,
ZONEDB_DESTROYLOCK(&zone->dblock);
isc_mutex_destroy(&zone->lock);
zone->magic = 0;
- isc_mem_putanddetach(&zone->mctx, zone, sizeof(*zone));
+ isc_mem_t *mctx = zone->mctx;
+ isc_mem_putx(mctx, zone, sizeof(*zone),
+ ISC_MEM_ALIGN(ISC_OS_CACHELINE_SIZE));
+ isc_mem_detach(&mctx);
}
/*
#include <stdbool.h>
+#include <isc/os.h>
+
#include <dns/adb.h>
#include <dns/db.h>
#include <dns/notify.h>
bool locked;
#endif /* ifdef DNS_ZONE_CHECKLOCK */
isc_mem_t *mctx;
- isc_refcount_t references;
+ __attribute__((
+ aligned(ISC_OS_CACHELINE_SIZE))) isc_refcount_t references;
- isc_rwlock_t dblock;
+ __attribute__((aligned(ISC_OS_CACHELINE_SIZE))) isc_rwlock_t dblock;
dns_db_t *db; /* Locked by dblock */
isc_tid_t tid;