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:
leilaes
2019-05-17 13:17:35 +12:00
committed by Adrian Gallagher
parent 17a6acf58a
commit 46267e5975
6 changed files with 40 additions and 1 deletions

View File

@@ -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"

View File

@@ -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

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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()

View File

@@ -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 {