2017-02-23 1 views
2

documentationtime.Tick 누수를 나타냅니다 ('종료 방법이 없으면 가비지 수집기에서 기본 티커를 복구 할 수 없으므로 누출 됨'). 나는 이것이 그 채널을 가리키고 있다고 가정하고 있습니다. 그러나 Timer을 정리할 수있는 방법이없는 것 같습니다. 화재는 발생하지 않지만 채널을 닫을 수는 없습니다 (수신 전용).time.NewTimer vs time.Tick

code for it에는 close 호출이 없습니다. runtime.deltimer (이는 Stop의 기본 메커니즘 임) 채널에 손을 대지 않습니다.

아무리해도 Timer은 누출이 있습니까?

+3

'중지'를 호출 할 수 없어 'time.Tick' 누수가 발생합니다. 'Timer'와'Ticker' 둘 다에'Stop'을 호출 할 수 있습니다. 채널을 닫는 것은 정리 작업이 아닙니다. – JimB

+0

실행이 지나간 후에 채널이 GC 되나요? –

+1

채널은 다른 값과 마찬가지로 GC로 처리됩니다. – JimB

답변

1

유일한 정리는 Stop (@JimB에서 설명한대로)을 호출하여 수행됩니다.