File tree 3 files changed +20
-0
lines changed
3 files changed +20
-0
lines changed Original file line number Diff line number Diff line change @@ -71,3 +71,4 @@ go run . -module closingchannels
71
71
* [ 78 - Spawning Processes] ( spawningprocesses/main.go )
72
72
* [ 79 - Execing Processes] ( execingprocesses/main.go )
73
73
* [ 80 - Signals] ( signals/main.go )
74
+ * [ 81 - Exit] ( exit/main.go )
Original file line number Diff line number Diff line change
1
+ package exit
2
+
3
+ import (
4
+ "fmt"
5
+ "os"
6
+ )
7
+
8
+ // To exit a program immediately with a particular exit code
9
+ // `os.Exit` can be used. However it will not run defers.
10
+ func Run () {
11
+ exitWithoutDefer (3 )
12
+ }
13
+
14
+ func exitWithoutDefer (code int ) {
15
+ defer func () { fmt .Println ("I won't run!" ) }()
16
+ os .Exit (code )
17
+ }
Original file line number Diff line number Diff line change @@ -17,6 +17,7 @@ import (
17
17
"github.com/symonk/learning-golang/defers"
18
18
"github.com/symonk/learning-golang/errors"
19
19
"github.com/symonk/learning-golang/execingprocesses"
20
+ "github.com/symonk/learning-golang/exit"
20
21
"github.com/symonk/learning-golang/forloop"
21
22
"github.com/symonk/learning-golang/functions"
22
23
"github.com/symonk/learning-golang/generics"
@@ -133,5 +134,6 @@ func buildMap() map[string]func() {
133
134
fnMap ["spawningprocesses" ] = spawningprocesses .Run
134
135
fnMap ["execingprocesses" ] = execingprocesses .Run
135
136
fnMap ["signals" ] = signals .Run
137
+ fnMap ["exit" ] = exit .Run
136
138
return fnMap
137
139
}
You can’t perform that action at this time.
0 commit comments