@@ -593,7 +593,6 @@ func (s *Server) proxyWorkspaceApp(rw http.ResponseWriter, r *http.Request, appT
593
593
tracing .EndHTTPSpan (r , http .StatusOK , trace .SpanFromContext (ctx ))
594
594
595
595
report := newStatsReportFromSignedToken (appToken )
596
- s .collectStats (report )
597
596
defer func () {
598
597
// We must use defer here because ServeHTTP may panic.
599
598
report .SessionEndedAt = dbtime .Now ()
@@ -614,7 +613,8 @@ func (s *Server) proxyWorkspaceApp(rw http.ResponseWriter, r *http.Request, appT
614
613
// @Success 101
615
614
// @Router /workspaceagents/{workspaceagent}/pty [get]
616
615
func (s * Server ) workspaceAgentPTY (rw http.ResponseWriter , r * http.Request ) {
617
- ctx := r .Context ()
616
+ ctx , cancel := context .WithCancel (r .Context ())
617
+ defer cancel ()
618
618
619
619
s .websocketWaitMutex .Lock ()
620
620
s .websocketWaitGroup .Add (1 )
@@ -670,12 +670,11 @@ func (s *Server) workspaceAgentPTY(rw http.ResponseWriter, r *http.Request) {
670
670
})
671
671
return
672
672
}
673
+ go httpapi .HeartbeatClose (ctx , s .Logger , cancel , conn )
673
674
674
675
ctx , wsNetConn := WebsocketNetConn (ctx , conn , websocket .MessageBinary )
675
676
defer wsNetConn .Close () // Also closes conn.
676
677
677
- go httpapi .Heartbeat (ctx , conn )
678
-
679
678
agentConn , release , err := s .AgentProvider .AgentConn (ctx , appToken .AgentID )
680
679
if err != nil {
681
680
log .Debug (ctx , "dial workspace agent" , slog .Error (err ))
0 commit comments