core.Delayed(): more generally usable version
This commit is contained in:
parent
a67c31e0b5
commit
eef9fba161
2 changed files with 9 additions and 12 deletions
19
core/core.go
19
core/core.go
|
@ -10,6 +10,14 @@ import (
|
|||
"git.sr.ht/~cco/go-scopes/logging"
|
||||
)
|
||||
|
||||
func Delayed(proc lib.Proc, delay time.Duration) lib.Proc {
|
||||
return func(ctx lib.Context) {
|
||||
logging.Debug(ctx).Int("delay", int(delay)).Msg("lib.Delayed")
|
||||
time.Sleep(delay * time.Millisecond)
|
||||
proc(ctx)
|
||||
}
|
||||
}
|
||||
|
||||
func None(_ lib.Context) {}
|
||||
|
||||
func Start(ctx lib.Context) {
|
||||
|
@ -17,17 +25,6 @@ func Start(ctx lib.Context) {
|
|||
lib.RunCtx(ctx, Listen)
|
||||
}
|
||||
|
||||
func DelayedStart(starter lib.StartProc, delay time.Duration) lib.StartProc {
|
||||
if starter == nil {
|
||||
starter = Start
|
||||
}
|
||||
return func(ctx lib.Context) {
|
||||
logging.Debug(ctx).Int("delay", int(delay)).Msg("core.DelayedStart")
|
||||
time.Sleep(delay * time.Millisecond)
|
||||
starter(ctx)
|
||||
}
|
||||
}
|
||||
|
||||
func Listen(ctx lib.Context) {
|
||||
step := ctx.Config().Step()
|
||||
for step(ctx) {
|
||||
|
|
|
@ -35,7 +35,7 @@ func Config() lib.Config {
|
|||
server_c.AddRoute("/api", server.MsgHandler("demo", nil, "test-receiver"))
|
||||
|
||||
test_client := &client.Cfg{
|
||||
BaseCfg: b("test-client", core.DelayedStart(core.Start, 50)),
|
||||
BaseCfg: b("test-client", core.Delayed(core.Start, 50)),
|
||||
Url: ovr("http://localhost:8123/api", SERVER_URL),
|
||||
}
|
||||
test_client.AddAction("demo", action.Base(client.Send))
|
||||
|
|
Loading…
Add table
Reference in a new issue