mirror of
https://github.com/vcmi/vcmi.git
synced 2025-06-08 23:36:33 +02:00
38 lines
1.0 KiB
C++
38 lines
1.0 KiB
C++
/*
|
|
* CThreadHelper.h, part of VCMI engine
|
|
*
|
|
* Authors: listed in file AUTHORS in main folder
|
|
*
|
|
* License: GNU General Public License v2.0 or later
|
|
* Full text of license available in license.txt file, in main folder
|
|
*
|
|
*/
|
|
#pragma once
|
|
|
|
VCMI_LIB_NAMESPACE_BEGIN
|
|
|
|
/// Sets thread name that will be used for both logs and debugger (if supported)
|
|
/// WARNING: on Unix-like systems this method should not be used for main thread since it will also change name of the process
|
|
void DLL_LINKAGE setThreadName(const std::string &name);
|
|
|
|
/// Sets thread name for use in logging only
|
|
void DLL_LINKAGE setThreadNameLoggingOnly(const std::string &name);
|
|
|
|
/// Returns human-readable thread name that was set before, or string form of system-provided thread ID if no human-readable name was set
|
|
std::string DLL_LINKAGE getThreadName();
|
|
|
|
class DLL_LINKAGE ScopedThreadName : boost::noncopyable
|
|
{
|
|
public:
|
|
ScopedThreadName(const std::string & name)
|
|
{
|
|
setThreadName(name);
|
|
}
|
|
~ScopedThreadName()
|
|
{
|
|
setThreadName({});
|
|
}
|
|
};
|
|
|
|
VCMI_LIB_NAMESPACE_END
|