Skip to content

Commit d0f4c31

Browse files
committed
cleanup
1 parent 5cae317 commit d0f4c31

1 file changed

Lines changed: 15 additions & 16 deletions

File tree

protocol/logger/job_logger.go

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -243,12 +243,21 @@ type internalBufferedLiveLoggerData struct {
243243
logfinished chan struct{}
244244
}
245245

246-
// IsZero returns true if the struct is closed
246+
// isZero returns true if the struct is closed
247247
// * internalBufferedLiveLoggerData is replaced by a zero struct instead of nil to not auto restart
248-
func (i *internalBufferedLiveLoggerData) IsZero() bool {
248+
func (i *internalBufferedLiveLoggerData) isZero() bool {
249249
return i == nil || i.logchan == nil || i.logdrain == nil || i.logfinished == nil
250250
}
251251

252+
func (i *internalBufferedLiveLoggerData) queueLog(wrapper *protocol.TimelineRecordFeedLinesWrapper) error {
253+
select {
254+
case <-i.logdrain:
255+
return errors.New("buffered live logger closing")
256+
case i.logchan <- wrapper:
257+
return nil
258+
}
259+
}
260+
252261
type BufferedLiveLogger struct {
253262
LiveLogger
254263
data atomic.Pointer[internalBufferedLiveLoggerData]
@@ -322,7 +331,7 @@ func (logger *BufferedLiveLogger) sendLogs(logchan chan *protocol.TimelineRecord
322331
}
323332

324333
func (logger *BufferedLiveLogger) Close() error {
325-
if data := logger.data.Swap(&internalBufferedLiveLoggerData{}); !data.IsZero() {
334+
if data := logger.data.Swap(&internalBufferedLiveLoggerData{}); !data.isZero() {
326335
// Keep logchan open to avoid races and just let it be freed
327336
close(data.logdrain)
328337
<-data.logfinished
@@ -333,15 +342,10 @@ func (logger *BufferedLiveLogger) Close() error {
333342
func (logger *BufferedLiveLogger) SendLog(wrapper *protocol.TimelineRecordFeedLinesWrapper) error {
334343
for {
335344
if data := logger.data.Load(); data != nil {
336-
if data.IsZero() {
345+
if data.isZero() {
337346
return errors.New("buffered live logger is closed")
338347
}
339-
select {
340-
case <-data.logdrain:
341-
return errors.New("buffered live logger closing")
342-
case data.logchan <- wrapper:
343-
return nil
344-
}
348+
return data.queueLog(wrapper)
345349
} else {
346350
ndata := internalBufferedLiveLoggerData{
347351
logchan: make(chan *protocol.TimelineRecordFeedLinesWrapper, websocketPingSize),
@@ -350,12 +354,7 @@ func (logger *BufferedLiveLogger) SendLog(wrapper *protocol.TimelineRecordFeedLi
350354
}
351355
if logger.data.CompareAndSwap(data, &ndata) {
352356
go logger.sendLogs(ndata.logchan, ndata.logdrain, ndata.logfinished)
353-
select {
354-
case <-ndata.logdrain:
355-
return errors.New("buffered live logger closing")
356-
case ndata.logchan <- wrapper:
357-
return nil
358-
}
357+
return data.queueLog(wrapper)
359358
} else {
360359
close(ndata.logchan)
361360
close(ndata.logfinished)

0 commit comments

Comments
 (0)