Prechádzať zdrojové kódy

导出ntpmgrd.SetSystemTime()设置系统时间的函数供外部使用

niujiuru 1 týždeň pred
rodič
commit
82f5ada95b
1 zmenil súbory, kde vykonal 7 pridanie a 2 odobranie
  1. 7 2
      netmgrd/ntp.go

+ 7 - 2
netmgrd/ntp.go

@@ -26,7 +26,7 @@ func SyncNTPTime() error {
 	if err != nil {
 		return err
 	}
-	if err := setSystemTime(t); err != nil {
+	if err := SetSystemTime(t); err != nil {
 		return err
 	}
 	return nil
@@ -84,7 +84,12 @@ func getAccurateTime(servers []string, timeout time.Duration) (time.Time, error)
 	return bestTimes[0], nil
 }
 
-func setSystemTime(t time.Time) error {
+var setTimeMu sync.Mutex // 保证调用 SetSystemTime() 函数的线程安全
+
+func SetSystemTime(t time.Time) error {
+	setTimeMu.Lock()
+	defer setTimeMu.Unlock()
+
 	cmd := exec.Command("date", "-s", t.Local().Format("2006-01-02 15:04:05"))
 	output, err := cmd.CombinedOutput()
 	if err != nil {