Skip to content

Commit c6e701b

Browse files
author
Dov Alperin
committed
Exit at top level
1 parent 2da9508 commit c6e701b

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

cmd/start/main.go

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package main
22

33
import (
44
"context"
5+
"errors"
56
"fmt"
67
"log"
78
"os"
@@ -49,7 +50,11 @@ func main() {
4950

5051
svisor := supervisor.New("flypg", 5*time.Minute)
5152

52-
go scaleToZeroWorker(ctx, node, svisor)
53+
go func() {
54+
if err := scaleToZeroWorker(ctx, node, svisor); err != nil {
55+
os.Exit(0)
56+
}
57+
}()
5358

5459
svisor.AddProcess("postgres", fmt.Sprintf("gosu postgres postgres -D %s -p %d", node.DataDir, node.Port))
5560

@@ -91,16 +96,16 @@ func main() {
9196
}
9297
}
9398

94-
func scaleToZeroWorker(ctx context.Context, node *flypg.Node, svisor *supervisor.Supervisor) {
99+
func scaleToZeroWorker(ctx context.Context, node *flypg.Node, svisor *supervisor.Supervisor) error {
95100
rawTimeout, exists := os.LookupEnv("FLY_SCALE_TO_ZERO")
96101
if !exists {
97-
return
102+
return nil
98103
}
99104

100105
duration, err := time.ParseDuration(rawTimeout)
101106
if err != nil {
102107
fmt.Printf("failed to parse FLY_SCALE_TO_ZERO duration %s\n", err)
103-
return
108+
return nil
104109
}
105110

106111
fmt.Printf("Configured scale to zero with duration of %s\n", duration.String())
@@ -110,7 +115,7 @@ func scaleToZeroWorker(ctx context.Context, node *flypg.Node, svisor *supervisor
110115
for {
111116
select {
112117
case <-ctx.Done():
113-
return
118+
return nil
114119
case <-ticker.C:
115120
current, err := getCurrentConnCount(ctx, node)
116121
if err != nil {
@@ -122,8 +127,7 @@ func scaleToZeroWorker(ctx context.Context, node *flypg.Node, svisor *supervisor
122127
continue
123128
}
124129
svisor.Stop()
125-
// skipcq: CRT-D0011, RVV-A0003
126-
os.Exit(0)
130+
return errors.New("scale to zero condition hit")
127131
}
128132
}
129133
}

0 commit comments

Comments
 (0)