diff options
author | Asad Saeeduddin <masaeedu@gmail.com> | 2018-03-12 00:56:41 -0400 |
---|---|---|
committer | Asad Saeeduddin <masaeedu@gmail.com> | 2018-03-12 00:56:41 -0400 |
commit | be54f4a0b6f160f8a2b0b9e9c988fb5251f70a97 (patch) | |
tree | 6c8b27f007a89501d3378309a7caff4afbd4d115 /src/libutil/logging.hh | |
parent | 24b739817fb719553dd4840308ee32ff60c88c1f (diff) |
Wrap thread local in function for Cygwin
Fixes #1826. See #1352 for a previous instance of a similar change.
Diffstat (limited to 'src/libutil/logging.hh')
-rw-r--r-- | src/libutil/logging.hh | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/libutil/logging.hh b/src/libutil/logging.hh index ca768d555..678703102 100644 --- a/src/libutil/logging.hh +++ b/src/libutil/logging.hh @@ -77,7 +77,8 @@ public: virtual void result(ActivityId act, ResultType type, const Fields & fields) { }; }; -extern thread_local ActivityId curActivity; +ActivityId getCurActivity(); +void setCurActivity(const ActivityId activityId); struct Activity { @@ -86,10 +87,10 @@ struct Activity const ActivityId id; Activity(Logger & logger, Verbosity lvl, ActivityType type, const std::string & s = "", - const Logger::Fields & fields = {}, ActivityId parent = curActivity); + const Logger::Fields & fields = {}, ActivityId parent = getCurActivity()); Activity(Logger & logger, ActivityType type, - const Logger::Fields & fields = {}, ActivityId parent = curActivity) + const Logger::Fields & fields = {}, ActivityId parent = getCurActivity()) : Activity(logger, lvlError, type, "", fields, parent) { }; Activity(const Activity & act) = delete; @@ -121,8 +122,8 @@ struct Activity struct PushActivity { const ActivityId prevAct; - PushActivity(ActivityId act) : prevAct(curActivity) { curActivity = act; } - ~PushActivity() { curActivity = prevAct; } + PushActivity(ActivityId act) : prevAct(getCurActivity()) { setCurActivity(act); } + ~PushActivity() { setCurActivity(prevAct); } }; extern Logger * logger; |