mirror of
https://github.com/SagerNet/sing-tun.git
synced 2025-04-02 19:37:40 +03:00
Better atomic using
This commit is contained in:
parent
22b811f938
commit
7f3343169a
4 changed files with 4 additions and 8 deletions
|
@ -51,12 +51,11 @@ func (m *defaultInterfaceMonitor) checkUpdate() error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
oldInterface := m.defaultInterface.Load()
|
|
||||||
newInterface, err := m.interfaceFinder.ByIndex(link.Attrs().Index)
|
newInterface, err := m.interfaceFinder.ByIndex(link.Attrs().Index)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return E.Cause(err, "find updated interface: ", link.Attrs().Name)
|
return E.Cause(err, "find updated interface: ", link.Attrs().Name)
|
||||||
}
|
}
|
||||||
m.defaultInterface.Store(newInterface)
|
oldInterface := m.defaultInterface.Swap(newInterface)
|
||||||
if oldInterface != nil && oldInterface.Equals(*newInterface) && oldVPNEnabled == m.androidVPNEnabled {
|
if oldInterface != nil && oldInterface.Equals(*newInterface) && oldVPNEnabled == m.androidVPNEnabled {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -165,12 +165,11 @@ func (m *defaultInterfaceMonitor) checkUpdate() error {
|
||||||
if defaultInterface == nil {
|
if defaultInterface == nil {
|
||||||
return ErrNoRoute
|
return ErrNoRoute
|
||||||
}
|
}
|
||||||
oldInterface := m.defaultInterface.Load()
|
|
||||||
newInterface, err := m.interfaceFinder.ByIndex(defaultInterface.Index)
|
newInterface, err := m.interfaceFinder.ByIndex(defaultInterface.Index)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return E.Cause(err, "find updated interface: ", defaultInterface.Name)
|
return E.Cause(err, "find updated interface: ", defaultInterface.Name)
|
||||||
}
|
}
|
||||||
m.defaultInterface.Store(newInterface)
|
oldInterface := m.defaultInterface.Swap(newInterface)
|
||||||
if oldInterface != nil && oldInterface.Equals(*newInterface) {
|
if oldInterface != nil && oldInterface.Equals(*newInterface) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,12 +25,11 @@ func (m *defaultInterfaceMonitor) checkUpdate() error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
oldInterface := m.defaultInterface.Load()
|
|
||||||
newInterface, err := m.interfaceFinder.ByIndex(link.Attrs().Index)
|
newInterface, err := m.interfaceFinder.ByIndex(link.Attrs().Index)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return E.Cause(err, "find updated interface: ", link.Attrs().Name)
|
return E.Cause(err, "find updated interface: ", link.Attrs().Name)
|
||||||
}
|
}
|
||||||
m.defaultInterface.Store(newInterface)
|
oldInterface := m.defaultInterface.Swap(newInterface)
|
||||||
if oldInterface != nil && oldInterface.Equals(*newInterface) {
|
if oldInterface != nil && oldInterface.Equals(*newInterface) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -102,12 +102,11 @@ func (m *defaultInterfaceMonitor) checkUpdate() error {
|
||||||
return ErrNoRoute
|
return ErrNoRoute
|
||||||
}
|
}
|
||||||
|
|
||||||
oldInterface := m.defaultInterface.Load()
|
|
||||||
newInterface, err := m.interfaceFinder.ByIndex(index)
|
newInterface, err := m.interfaceFinder.ByIndex(index)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return E.Cause(err, "find updated interface: ", alias)
|
return E.Cause(err, "find updated interface: ", alias)
|
||||||
}
|
}
|
||||||
m.defaultInterface.Store(newInterface)
|
oldInterface := m.defaultInterface.Swap(newInterface)
|
||||||
if oldInterface != nil && oldInterface.Equals(*newInterface) {
|
if oldInterface != nil && oldInterface.Equals(*newInterface) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue