mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-05-13 15:09:42 +00:00
Add missing close file and missing stop ticker (#300)
* Add missing close file and missing stop ticker * Defer close file after checking error * Update exchange_template.go
This commit is contained in:
committed by
Adrian Gallagher
parent
17a6acf58a
commit
46267e5975
@@ -7,6 +7,7 @@ tenets:
|
||||
- import: codelingo/effective-go/underscores-in-name
|
||||
- import: codelingo/effective-go/unnecessary-else
|
||||
- import: codelingo/code-review-comments/declare-empty-slice
|
||||
- import: codelingo/effective-go/defer-close-file
|
||||
# Overwrite one tenet with custom logic
|
||||
# - import: codelingo/effective-go/comment-first-word-when-empty
|
||||
- name: comment-first-word-when-empty
|
||||
@@ -32,3 +33,31 @@ tenets:
|
||||
go.ident:
|
||||
name as funcName
|
||||
public == "true"
|
||||
- name: missing-stop-ticker
|
||||
flows:
|
||||
codelingo/review:
|
||||
comment: Add `defer {{varName}}.Stop()` to stop the ticker and release associated resources.
|
||||
query: |
|
||||
import codelingo/ast/go
|
||||
|
||||
go.func_decl(depth = any):
|
||||
@review comment
|
||||
go.assign_stmt(depth = any):
|
||||
go.lhs:
|
||||
go.ident:
|
||||
sibling_order == 0
|
||||
name as varName
|
||||
go.rhs:
|
||||
go.call_expr:
|
||||
go.selector_expr:
|
||||
go.ident:
|
||||
name == "time"
|
||||
go.ident:
|
||||
name == "NewTicker"
|
||||
exclude:
|
||||
go.call_expr(depth = any):
|
||||
go.selector_expr:
|
||||
go.ident:
|
||||
name == varName
|
||||
go.ident:
|
||||
name == "Stop"
|
||||
|
||||
@@ -328,6 +328,7 @@ func (s *Slack) handleReconnectResponse(resp []byte) error {
|
||||
// WebsocketKeepAlive sends a ping every 5 minutes to keep connection alive
|
||||
func (s *Slack) WebsocketKeepAlive() {
|
||||
ticker := time.NewTicker(5 * time.Minute)
|
||||
defer ticker.Stop()
|
||||
|
||||
for {
|
||||
<-ticker.C
|
||||
|
||||
@@ -277,6 +277,8 @@ func (s *Storage) ForeignExchangeUpdater() {
|
||||
// Set tickers to client defined rates or defaults
|
||||
SeedForeignExchangeTick := time.NewTicker(s.foreignExchangeUpdateDelay)
|
||||
SeedCurrencyAnalysisTick := time.NewTicker(s.currencyFileUpdateDelay)
|
||||
defer SeedForeignExchangeTick.Stop()
|
||||
defer SeedCurrencyAnalysisTick.Stop()
|
||||
|
||||
for {
|
||||
select {
|
||||
|
||||
@@ -154,6 +154,7 @@ func (k *Kraken) wsPingHandler() {
|
||||
k.Websocket.Wg.Add(1)
|
||||
defer k.Websocket.Wg.Done()
|
||||
ticker := time.NewTicker(time.Second * 27)
|
||||
defer ticker.Stop()
|
||||
|
||||
for {
|
||||
select {
|
||||
|
||||
@@ -237,7 +237,8 @@ func (o *OKGroup) wsPingHandler(wg *sync.WaitGroup) {
|
||||
o.Websocket.Wg.Add(1)
|
||||
defer o.Websocket.Wg.Done()
|
||||
|
||||
ticker := time.NewTicker(time.Second * 10)
|
||||
ticker := time.NewTicker(time.Second * 27)
|
||||
defer ticker.Stop()
|
||||
|
||||
wg.Done()
|
||||
|
||||
|
||||
@@ -158,6 +158,7 @@ func main() {
|
||||
log.Fatal("GoCryptoTrader: Exchange templating tool cannot open file ", err)
|
||||
}
|
||||
tReadme.Execute(r1, exch)
|
||||
r1.Close()
|
||||
|
||||
tMain, err := template.New("main").ParseFiles("main_file.tmpl")
|
||||
if err != nil {
|
||||
@@ -169,6 +170,7 @@ func main() {
|
||||
log.Fatal("GoCryptoTrader: Exchange templating tool cannot open file ", err)
|
||||
}
|
||||
tMain.Execute(m1, exch)
|
||||
m1.Close()
|
||||
|
||||
tTest, err := template.New("test").ParseFiles("test_file.tmpl")
|
||||
if err != nil {
|
||||
@@ -180,6 +182,7 @@ func main() {
|
||||
log.Fatal("GoCryptoTrader: Exchange templating tool cannot open file ", err)
|
||||
}
|
||||
tTest.Execute(t1, exch)
|
||||
t1.Close()
|
||||
|
||||
tType, err := template.New("type").ParseFiles("type_file.tmpl")
|
||||
if err != nil {
|
||||
@@ -191,6 +194,7 @@ func main() {
|
||||
log.Fatal("GoCryptoTrader: Exchange templating tool cannot open file ", err)
|
||||
}
|
||||
tType.Execute(ty1, exch)
|
||||
ty1.Close()
|
||||
|
||||
tWrapper, err := template.New("wrapper").ParseFiles("wrapper_file.tmpl")
|
||||
if err != nil {
|
||||
@@ -202,6 +206,7 @@ func main() {
|
||||
log.Fatal("GoCryptoTrader: Exchange templating tool cannot open file ", err)
|
||||
}
|
||||
tWrapper.Execute(w1, exch)
|
||||
w1.Close()
|
||||
|
||||
err = exec.Command("go", "fmt", exchangeDirectory).Run()
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user