diff --git a/context.go b/context.go index 01b30fc..13a7d28 100644 --- a/context.go +++ b/context.go @@ -184,7 +184,7 @@ func (c *Context) Signal(v any) *signal { func (c *Context) injectSignals(sigs map[string]any) { if sigs == nil { - c.app.logErr(c, "signal injection failed: nil signals in ctx") + c.app.logErr(c, "signal injection failed: nil signals") return } @@ -320,7 +320,9 @@ func (c *Context) ExecScript(s string) { func (c *Context) stopAllRoutines() { select { case c.ctxDisposedChan <- struct{}{}: + c.app.logDebug(c, "stopped all routines") default: + c.app.logDebug(c, "did not stop all routines") } } @@ -337,6 +339,6 @@ func newContext(id string, route string, v *V) *Context { componentRegistry: make(map[string]*Context), actionRegistry: make(map[string]func()), signals: new(sync.Map), - ctxDisposedChan: make(chan struct{}), + ctxDisposedChan: make(chan struct{}, 1), } } diff --git a/via.go b/via.go index 2e2a9b5..45a3d0b 100644 --- a/via.go +++ b/via.go @@ -153,7 +153,7 @@ func (v *V) Page(route string, initContextFn func(c *Context)) { v.devModePageInitFnMap[route] = initContextFn } v.mux.HandleFunc("GET "+route, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - v.logDebug(nil, "GET %s", route) + v.logDebug(nil, "GET %s", r.URL.String()) if strings.Contains(r.URL.Path, "favicon") { return } @@ -389,11 +389,7 @@ func New() *V { defer close(c.patchChan) go func() { - if v.cfg.DevMode { - c.Sync() - } else { - c.SyncSignals() - } + c.Sync() }() for { @@ -403,23 +399,23 @@ func New() *V { return case patch, ok := <-c.patchChan: if !ok { - return + continue } switch patch.typ { case patchTypeElements: if err := sse.PatchElements(patch.content); err != nil { v.logErr(c, "PatchElements failed: %v", err) - return + continue } case patchTypeSignals: if err := sse.PatchSignals([]byte(patch.content)); err != nil { v.logErr(c, "PatchSignals failed: %v", err) - return + continue } case patchTypeScript: if err := sse.ExecuteScript(patch.content, datastar.WithExecuteScriptAutoRemove(true)); err != nil { v.logErr(c, "ExecuteScript failed: %v", err) - return + continue } } }