Skip to content

Commit 9929e1d

Browse files
committed
improve server start
1 parent a417638 commit 9929e1d

File tree

3 files changed

+43
-39
lines changed

3 files changed

+43
-39
lines changed

server/cmd/desktop/main.go

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,36 +9,21 @@ import (
99

1010
func main() {}
1111

12-
var (
13-
server *app.Server
14-
)
15-
1612
//export Start
1713
func Start(cfgPtr *C.char) (*C.char, *C.char) {
18-
if server != nil {
19-
return C.CString(server.Addr()), nil
20-
}
21-
2214
if cfgPtr == nil {
2315
return nil, C.CString("cfg is required")
2416
}
2517
cfg := C.GoString(cfgPtr)
2618

27-
var err error
28-
29-
server, err = app.NewServer(cfg)
19+
result, err := app.Start(cfg)
3020
if err != nil {
3121
return nil, C.CString(err.Error())
3222
}
33-
go server.Start()
34-
35-
return C.CString(server.Addr()), nil
23+
return C.CString(result), nil
3624
}
3725

3826
//export Stop
3927
func Stop() {
40-
if server != nil {
41-
server.Shutdown()
42-
}
43-
server = nil
28+
app.Stop()
4429
}

server/cmd/mobile/main.go

Lines changed: 2 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,29 +7,10 @@ import (
77
_ "golang.org/x/mobile/bind"
88
)
99

10-
var (
11-
server *app.Server
12-
)
13-
1410
func Start(cfg string) (string, error) {
15-
if server != nil {
16-
return server.Addr(), nil
17-
}
18-
19-
var err error
20-
21-
server, err = app.NewServer(cfg)
22-
if err != nil {
23-
return "", err
24-
}
25-
go server.Start()
26-
27-
return server.Addr(), nil
11+
return app.Start(cfg)
2812
}
2913

3014
func Stop() {
31-
if server != nil {
32-
server.Shutdown()
33-
}
34-
server = nil
15+
app.Stop()
3516
}

server/internal/app/cmd.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package app
2+
3+
import (
4+
"net/http"
5+
)
6+
7+
var (
8+
_server *Server
9+
_result string
10+
)
11+
12+
func Start(cfg string) (string, error) {
13+
if _server != nil {
14+
return _result, nil
15+
}
16+
17+
var err error
18+
19+
_server, err = NewServer(cfg)
20+
if err != nil {
21+
return "", err
22+
}
23+
_result = _server.Addr()
24+
25+
go func() {
26+
if err := _server.Start(); err != nil && err != http.ErrServerClosed {
27+
panic(err)
28+
}
29+
}()
30+
return _result, nil
31+
}
32+
33+
func Stop() {
34+
if _server != nil {
35+
_server.Shutdown()
36+
}
37+
_server = nil
38+
}

0 commit comments

Comments
 (0)