Package Socket/Server:

- fix UDP as kernel SOCKGRAM
- add unixgram as kernel SOCKGRAM for local socket file
- optimize parallel statment
- optimize code / minor bugs fix
- add IsRunning function
- add timeout shutdown based on periodicly check of IsRunning
- fix close channel before send empty struct to stop process
- optimize clean shutdown
- optimize connection process to use less resources and lock pipeline less time
This commit is contained in:
Nicolas JUHEL
2024-02-05 15:03:58 +01:00
parent f7fd908a14
commit c1fc4e816e
17 changed files with 464 additions and 164 deletions

View File

@@ -35,6 +35,7 @@ import (
)
const DefaultBufferSize = 32 * 1024
const EOL byte = '\n'
type ConnState uint8
@@ -79,13 +80,16 @@ type Handler func(request io.Reader, response io.Writer)
type Response func(r io.Reader)
type Server interface {
io.Closer
RegisterFuncError(f FuncError)
RegisterFuncInfo(f FuncInfo)
RegisterFuncInfoServer(f FuncInfoSrv)
SetTLS(enable bool, config libtls.TLSConfig) error
Listen(ctx context.Context) error
Shutdown()
Shutdown() error
IsRunning() bool
Done() <-chan struct{}
}