diff --git a/src/heap/cppgc/pointer-policies.cc b/src/heap/cppgc/pointer-policies.cc index 0000000..0000000 100644 --- a/src/heap/cppgc/pointer-policies.cc +++ b/src/heap/cppgc/pointer-policies.cc @@ -108,7 +108,15 @@ namespace internal { PersistentRegion& StrongPersistentPolicy::GetPersistentRegion( const void* object) { - return BasePage::FromPayload(object)->heap().GetStrongPersistentRegion(); + auto& heap = BasePage::FromPayload(object)->heap(); + if (V8_UNLIKELY(!heap.CurrentThreadIsHeapThread())) { + fprintf(stderr, + "POCTRACE *** OFF-THREAD StrongPersistent FreeNode: object=%p " + "heap=%p cur_tid=%d ***\n", + object, &heap, v8::base::OS::GetCurrentThreadId()); + fflush(stderr); + } + return heap.GetStrongPersistentRegion(); } PersistentRegion& WeakPersistentPolicy::GetPersistentRegion(