| 12345678910111213141516171819202122232425262728293031323334353637 |
- /*
- * 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
|