Add a high-performance thread local storage class.

This commit is contained in:
KingToolbox committed 2020-08-28 14:47:23 +08:00
1 parent d5c33239e5
commit 685cf3111d
3 files changed
+240

No files matched your search

+31
View File
@@ -0,0 +1,31 @@
/*
* Copyright 2020, WindTerm.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "ThreadLocal.h"
#include <QThread>
void ThreadLocalWatcher::stopWatchCurrentThread() {
QThread::currentThread()->disconnect(this);
}
void ThreadLocalWatcher::watchCurrentThread() {
boost::thread::id id = boost::this_thread::get_id();
connect(QThread::currentThread(), &QThread::finished, this, [this, id]() {
clear(id);
});
}