Make edata pointer on prof recent record an atomic fence

This commit is contained in:
Yinan Zhang
2020-04-10 16:26:55 -07:00
parent b8bdea6b26
commit 857ebd3daf
4 changed files with 42 additions and 19 deletions

View File

@@ -107,7 +107,7 @@ confirm_malloc(void *p) {
assert_ptr_not_null(n, "Record in edata should not be NULL");
expect_ptr_not_null(n->alloc_tctx,
"alloc_tctx in record should not be NULL");
expect_ptr_eq(e, n->alloc_edata,
expect_ptr_eq(e, prof_recent_alloc_edata_get_no_lock(n),
"edata pointer in record is not correct");
expect_ptr_null(n->dalloc_tctx, "dalloc_tctx in record should be NULL");
}
@@ -122,9 +122,10 @@ static void
confirm_record_living(prof_recent_t *n) {
expect_ptr_not_null(n->alloc_tctx,
"alloc_tctx in record should not be NULL");
assert_ptr_not_null(n->alloc_edata,
edata_t *edata = prof_recent_alloc_edata_get_no_lock(n);
assert_ptr_not_null(edata,
"Recorded edata should not be NULL for living pointer");
expect_ptr_eq(n, edata_prof_recent_alloc_get_no_lock(n->alloc_edata),
expect_ptr_eq(n, edata_prof_recent_alloc_get_no_lock(edata),
"Record in edata is not correct");
expect_ptr_null(n->dalloc_tctx, "dalloc_tctx in record should be NULL");
}
@@ -133,7 +134,7 @@ static void
confirm_record_released(prof_recent_t *n) {
expect_ptr_not_null(n->alloc_tctx,
"alloc_tctx in record should not be NULL");
expect_ptr_null(n->alloc_edata,
expect_ptr_null(prof_recent_alloc_edata_get_no_lock(n),
"Recorded edata should be NULL for released pointer");
expect_ptr_not_null(n->dalloc_tctx,
"dalloc_tctx in record should not be NULL for released pointer");