//go:build windows
/* SPDX-License-Identifier: MIT
*
* Copyright (C) 2019-2026 WireGuard LLC. All Rights Reserved.
*/
package conf
import "sync"
type StoreCallback struct {
cb func()
}
var (
storeCallbacks = make(map[*StoreCallback]bool)
storeCallbacksLock sync.RWMutex
watchConfigDirOnce sync.Once
)
func RegisterStoreChangeCallback(cb func()) *StoreCallback {
watchConfigDirOnce.Do(startWatchingConfigDir)
cb()
s := &StoreCallback{cb}
storeCallbacksLock.Lock()
storeCallbacks[s] = true
storeCallbacksLock.Unlock()
return s
}
func (cb *StoreCallback) Unregister() {
storeCallbacksLock.Lock()
delete(storeCallbacks, cb)
storeCallbacksLock.Unlock()
}