diff options
author | Enrico Granata <egranata@apple.com> | 2015-01-09 19:47:45 +0000 |
---|---|---|
committer | Enrico Granata <egranata@apple.com> | 2015-01-09 19:47:45 +0000 |
commit | 3f7f2077c372e5c827c0c6ae7b2f8025402331a0 (patch) | |
tree | 75314e8e7d6681ad1766951e23a53f8238ea51ec /libcxx/test/std/containers/sequences/array/array.tuple/get_rv.pass.cpp | |
parent | 131d1770f6e00ed07f418f21d4b9b4fd2955a3e0 (diff) | |
download | bcm5719-llvm-3f7f2077c372e5c827c0c6ae7b2f8025402331a0.tar.gz bcm5719-llvm-3f7f2077c372e5c827c0c6ae7b2f8025402331a0.zip |
Make the list of synthetic children thread safe
I have been seeing a few crashes where LLDB tries to acquire a cached synthetic child by index, and crashes in the ClusterManager obtaining a shared_ptr for that ValueObject
That kind of crash most often means that I am holding on to a raw pointer to a ValueObject that was let go from the cluster
The main way that could happen is that the synthetic provider is being updated at the same time that some child is being accessed from the previous provider state
This fixes the problem by making the children be stored in a thread-safe map
Fixes rdar://18627964
llvm-svn: 225538
Diffstat (limited to 'libcxx/test/std/containers/sequences/array/array.tuple/get_rv.pass.cpp')
0 files changed, 0 insertions, 0 deletions