Skip to content

Commit

Permalink
[I/O] Use thread-local collection proxy in TClass::Destructor
Browse files Browse the repository at this point in the history
This fixes #10357 (a race condition when reading vectors with custom
allocators with TTreeProcessorMT that also affected RDataFrame).

Co-authored-by: Philippe Canal <[email protected]>
  • Loading branch information
eguiraud and pcanal committed Apr 10, 2022
1 parent f4bd8e7 commit 5a125ab
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions core/meta/src/TClass.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -5414,7 +5414,7 @@ void TClass::Destructor(void *obj, Bool_t dtorOnly)
// There is no dictionary at all, so this is an emulated
// class; however we do have the services of a collection proxy,
// so this is an emulated STL class.
fCollectionProxy->Destructor(p, dtorOnly);
GetCollectionProxy()->Destructor(p, dtorOnly);
} else if (!HasInterpreterInfo() && !fCollectionProxy) {
// There is no dictionary at all and we do not have
// the services of a collection proxy available, so
Expand Down Expand Up @@ -5540,7 +5540,7 @@ void TClass::DeleteArray(void *ary, Bool_t dtorOnly)
// There is no dictionary at all, so this is an emulated
// class; however we do have the services of a collection proxy,
// so this is an emulated STL class.
fCollectionProxy->DeleteArray(ary, dtorOnly);
GetCollectionProxy()->DeleteArray(ary, dtorOnly);
} else if (!HasInterpreterInfo() && !fCollectionProxy) {
// There is no dictionary at all and we do not have
// the services of a collection proxy available, so
Expand Down

0 comments on commit 5a125ab

Please sign in to comment.