@@ -54,30 +54,6 @@ type Conductor struct {
5454 logger * slog.Logger
5555}
5656
57- // closeConn closes the connection and signals that reconnection is needed
58- func (c * Conductor ) closeConn () {
59- // Cancel ping goroutine first
60- if c .pingCancel != nil {
61- c .pingCancel ()
62- c .pingCancel = nil
63- }
64-
65- if c .conn != nil {
66- c .conn .SetWriteDeadline (time .Now ().Add (5 * time .Second )) // Make sure the write doesn't block
67- err := c .conn .WriteMessage (websocket .CloseMessage , websocket .FormatCloseMessage (websocket .CloseNormalClosure , "shutting down" ))
68- if err != nil {
69- c .logger .Warn ("Failed to send close message" , "error" , err )
70- }
71- err = c .conn .Close ()
72- if err != nil {
73- c .logger .Warn ("Failed to close connection" , "error" , err )
74- }
75- c .conn = nil
76- }
77- // Signal that we need to reconnect
78- c .needsReconnect .Store (true )
79- }
80-
8157// Launch starts the conductor connection manager goroutine
8258func (c * Conductor ) Launch () {
8359 c .logger .Info ("Launching conductor" , "url" , c .url .String ())
@@ -156,6 +132,30 @@ func (c *Conductor) Shutdown(timeout time.Duration) {
156132 })
157133}
158134
135+ // closeConn closes the connection and signals that reconnection is needed
136+ func (c * Conductor ) closeConn () {
137+ // Cancel ping goroutine first
138+ if c .pingCancel != nil {
139+ c .pingCancel ()
140+ c .pingCancel = nil
141+ }
142+
143+ if c .conn != nil {
144+ c .conn .SetWriteDeadline (time .Now ().Add (5 * time .Second )) // Make sure the write doesn't block
145+ err := c .conn .WriteMessage (websocket .CloseMessage , websocket .FormatCloseMessage (websocket .CloseNormalClosure , "shutting down" ))
146+ if err != nil {
147+ c .logger .Warn ("Failed to send close message" , "error" , err )
148+ }
149+ err = c .conn .Close ()
150+ if err != nil {
151+ c .logger .Warn ("Failed to close connection" , "error" , err )
152+ }
153+ c .conn = nil
154+ }
155+ // Signal that we need to reconnect
156+ c .needsReconnect .Store (true )
157+ }
158+
159159// run manages the WebSocket connection lifecycle with reconnection
160160func (c * Conductor ) run () {
161161 defer c .wg .Done ()
@@ -228,7 +228,7 @@ func (c *Conductor) run() {
228228
229229// connect establishes a WebSocket connection to the conductor
230230func (c * Conductor ) connect () error {
231- c .logger .Debug ("Connecting to conductor" , "url" , c . url . String () )
231+ c .logger .Debug ("Connecting to conductor" )
232232
233233 dialer := websocket.Dialer {
234234 HandshakeTimeout : _HANDSHAKE_TIMEOUT ,
0 commit comments