From ca9edf1c6301ed1498a56124d018474a68d04b25 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Wed, 9 Dec 2020 01:46:55 +0100 Subject: wintun: do not load dll in init() This prevents linking to wintun.dll until it's actually needed, which should improve startup time. Signed-off-by: Jason A. Donenfeld --- tun/wintun/dll_fromrsrc_windows.go | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'tun/wintun/dll_fromrsrc_windows.go') diff --git a/tun/wintun/dll_fromrsrc_windows.go b/tun/wintun/dll_fromrsrc_windows.go index e6e393f..d107ba9 100644 --- a/tun/wintun/dll_fromrsrc_windows.go +++ b/tun/wintun/dll_fromrsrc_windows.go @@ -23,6 +23,7 @@ type lazyDLL struct { Name string mu sync.Mutex module *memmod.Module + onLoad func(d *lazyDLL) } func (d *lazyDLL) Load() error { @@ -50,6 +51,9 @@ func (d *lazyDLL) Load() error { } atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&d.module)), unsafe.Pointer(module)) + if d.onLoad != nil { + d.onLoad(d) + } return nil } -- cgit v1.2.3