File tree Expand file tree Collapse file tree 1 file changed +12
-9
lines changed Expand file tree Collapse file tree 1 file changed +12
-9
lines changed Original file line number Diff line number Diff line change @@ -141,13 +141,18 @@ func (db *DB) PollSource(
141
141
// start begins the goroutine for this poller, which will periodically request
142
142
// time series data from the DataSource and store it.
143
143
func (p * poller ) start () (firstDone <- chan struct {}) {
144
- ch := make (chan struct {})
145
- // Poll once immediately and synchronously.
146
- bgCtx := p .AnnotateCtx (context .Background ())
147
- if p .stopper .RunAsyncTask (bgCtx , "ts-poller" , func (ctx context.Context ) {
148
- ch := ch // goroutine-local copy
144
+ ch := make (chan struct {}) // closed on completion of first poll
145
+ ctx , hdl , err := p .stopper .GetHandle (
146
+ p .AnnotateCtx (context .Background ()), stop.TaskOpts {TaskName : "ts-poller" },
147
+ )
148
+ if err != nil {
149
+ close (ch )
150
+ return ch
151
+ }
152
+ go func (ctx context.Context , ch chan struct {}) {
153
+ defer hdl .Activate (ctx ).Release (ctx )
149
154
var ticker timeutil.Timer
150
- ticker .Reset (0 )
155
+ ticker .Reset (0 ) // poll immediately
151
156
defer ticker .Stop ()
152
157
for {
153
158
select {
@@ -162,9 +167,7 @@ func (p *poller) start() (firstDone <-chan struct{}) {
162
167
return
163
168
}
164
169
}
165
- }) != nil {
166
- close (ch )
167
- }
170
+ }(ctx , ch )
168
171
return ch
169
172
}
170
173
You can’t perform that action at this time.
0 commit comments