summaryrefslogtreecommitdiff
path: root/platform/default/thread_local.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'platform/default/thread_local.cpp')
-rw-r--r--platform/default/thread_local.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/platform/default/thread_local.cpp b/platform/default/thread_local.cpp
index b754a04b7d..6fdb1e6dc1 100644
--- a/platform/default/thread_local.cpp
+++ b/platform/default/thread_local.cpp
@@ -29,7 +29,11 @@ ThreadLocal<T>::ThreadLocal() : impl(std::make_unique<Impl>()) {
template <class T>
ThreadLocal<T>::~ThreadLocal() {
- delete get();
+ // ThreadLocal will not take ownership
+ // of the pointer it is managing. The pointer
+ // needs to be explicitly cleared before we
+ // destroy this object.
+ assert(!get());
if (pthread_key_delete(impl->key)) {
Log::Error(Event::General, "Failed to delete local storage key.");