29 lines
482 B
Go
29 lines
482 B
Go
//go:build windows
|
|
|
|
package main
|
|
|
|
func (pm *ProcessManager) Lock() error {
|
|
pm.mu.Lock()
|
|
defer pm.mu.Unlock()
|
|
|
|
if pm.locked {
|
|
return nil
|
|
}
|
|
|
|
// Windows 上暂用内存锁模拟(进程间不互斥,仅同一进程内互斥)
|
|
// 如需真正的进程间锁,后续可改用 Windows Named Mutex
|
|
pm.locked = true
|
|
return nil
|
|
}
|
|
|
|
func (pm *ProcessManager) Unlock() error {
|
|
pm.mu.Lock()
|
|
defer pm.mu.Unlock()
|
|
|
|
if !pm.locked {
|
|
return nil
|
|
}
|
|
pm.locked = false
|
|
return nil
|
|
}
|