-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsimple_demo.go
More file actions
34 lines (27 loc) · 1.07 KB
/
simple_demo.go
File metadata and controls
34 lines (27 loc) · 1.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// simple_demo.go - Basic demonstration of runtime/secret.Enabled()
//
// This demo shows the fundamental API of the runtime/secret package by
// demonstrating how secret.Enabled() returns different values inside
// and outside of secret.Do().
package main
import (
"fmt"
"runtime/secret"
)
func main() {
fmt.Println("=== Basic secret.Enabled() Demo ===")
fmt.Println()
// Outside secret.Do(), Enabled() returns false
fmt.Printf("Outside secret.Do(): secret.Enabled() = %v\n", secret.Enabled())
// Inside secret.Do(), Enabled() returns true
// After secret.Do() completes, all temporary storage (registers, stack, heap)
// used during execution is automatically erased
secret.Do(func() {
fmt.Printf("Inside secret.Do(): secret.Enabled() = %v\n", secret.Enabled())
})
// After exiting secret.Do(), Enabled() returns false again
fmt.Printf("After secret.Do(): secret.Enabled() = %v\n", secret.Enabled())
fmt.Println()
fmt.Println("Key insight: When secret.Enabled() returns true, all memory used")
fmt.Println("during execution will be automatically erased upon exit.")
}