mirror of
				https://github.com/rad4day/Waybar.git
				synced 2025-10-31 07:52:42 +01:00 
			
		
		
		
	Issue 1226/1497: Replace sleep_until with sleep_for to prevent clock from getting stuck with system time adjustment
This commit is contained in:
		| @@ -74,10 +74,7 @@ waybar::modules::Clock::Clock(const std::string& id, const Json::Value& config) | ||||
|  | ||||
|   thread_ = [this] { | ||||
|     dp.emit(); | ||||
|     auto now = std::chrono::system_clock::now(); | ||||
|     auto timeout = std::chrono::floor<std::chrono::seconds>(now + interval_); | ||||
|     auto diff = std::chrono::seconds(timeout.time_since_epoch().count() % interval_.count()); | ||||
|     thread_.sleep_until(timeout - diff); | ||||
|     thread_.sleep_for(interval_); | ||||
|   }; | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -6,10 +6,7 @@ waybar::modules::Clock::Clock(const std::string& id, const Json::Value& config) | ||||
|     : ALabel(config, "clock", id, "{:%H:%M}", 60) { | ||||
|   thread_ = [this] { | ||||
|     dp.emit(); | ||||
|     auto now = std::chrono::system_clock::now(); | ||||
|     auto timeout = std::chrono::floor<std::chrono::seconds>(now + interval_); | ||||
|     auto diff = std::chrono::seconds(timeout.time_since_epoch().count() % interval_.count()); | ||||
|     thread_.sleep_until(timeout - diff); | ||||
|     thread_.sleep_for(interval_); | ||||
|   }; | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Rene D. Obermueller
					Rene D. Obermueller