mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 10:52:25 +00:00
ethstats: stop report ticker in each loop cycle #21070
This commit is contained in:
parent
0b63915430
commit
5e38cc10eb
1 changed files with 13 additions and 10 deletions
|
|
@ -154,7 +154,7 @@ func (s *Service) loop() {
|
|||
txSub := txpool.SubscribeNewTxsEvent(txEventCh)
|
||||
defer txSub.Unsubscribe()
|
||||
|
||||
// Start a goroutine that exhausts the subsciptions to avoid events piling up
|
||||
// Start a goroutine that exhausts the subscriptions to avoid events piling up
|
||||
var (
|
||||
quitCh = make(chan struct{})
|
||||
headCh = make(chan *types.Block, 1)
|
||||
|
|
@ -194,8 +194,7 @@ func (s *Service) loop() {
|
|||
}
|
||||
close(quitCh)
|
||||
}()
|
||||
// Loop reporting until termination
|
||||
for {
|
||||
|
||||
// Resolve the URL, defaulting to TLS, but falling back to none too
|
||||
path := fmt.Sprintf("%s/api", s.host)
|
||||
urls := []string{path}
|
||||
|
|
@ -204,6 +203,8 @@ func (s *Service) loop() {
|
|||
if !strings.Contains(path, "://") {
|
||||
urls = []string{"wss://" + path, "ws://" + path}
|
||||
}
|
||||
// Loop reporting until termination
|
||||
for {
|
||||
// Establish a websocket connection to the server on any supported URL
|
||||
var (
|
||||
conn *websocket.Conn
|
||||
|
|
@ -240,11 +241,12 @@ func (s *Service) loop() {
|
|||
}
|
||||
// Keep sending status updates until the connection breaks
|
||||
fullReport := time.NewTicker(15 * time.Second)
|
||||
defer fullReport.Stop()
|
||||
|
||||
for err == nil {
|
||||
select {
|
||||
case <-quitCh:
|
||||
fullReport.Stop()
|
||||
// Make sure the connection is closed
|
||||
conn.Close()
|
||||
return
|
||||
|
||||
|
|
@ -269,6 +271,7 @@ func (s *Service) loop() {
|
|||
}
|
||||
}
|
||||
}
|
||||
fullReport.Stop()
|
||||
// Make sure the connection is closed
|
||||
conn.Close()
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue