tailscale/types/lazy
Nick Hill 9a73462ea4 types/lazy: add DeferredInit type
It is sometimes necessary to defer initialization steps until the first actual usage
or until certain prerequisites have been met. For example, policy setting and
policy source registration should not occur during package initialization.
Instead, they should be deferred until the syspolicy package is actually used.
Additionally, any errors should be properly handled and reported, rather than
causing a panic within the package's init function.

In this PR, we add DeferredInit, to facilitate the registration and invocation
of deferred initialization functions.

Updates #12687

Signed-off-by: Nick Hill <mykola.khyl@gmail.com>
2024-10-07 15:43:22 -05:00
..
deferred_test.go types/lazy: add DeferredInit type 2024-10-07 15:43:22 -05:00
deferred.go types/lazy: add DeferredInit type 2024-10-07 15:43:22 -05:00
lazy.go types/lazy: re-init SyncValue during test cleanup if it wasn't set before SetForTest 2024-07-24 11:47:58 -05:00
sync_test.go types/lazy: re-init SyncValue during test cleanup if it wasn't set before SetForTest 2024-07-24 11:47:58 -05:00
unsync_test.go types/lazy: helpers for lazily computed values 2023-02-10 20:59:58 -08:00
unsync.go types/lazy: helpers for lazily computed values 2023-02-10 20:59:58 -08:00