|
26 | 26 | # custom dispose-sink the extractor's intra-Dispose() field scan can't see. Two |
27 | 27 | # also dispose only in the dispose-pattern override / lifecycle hook (Dispose(bool |
28 | 28 | # disposing), CloseTarget()), neither of which the field scan visits. |
29 | | -NLog/NLog | TimeoutContinuation.cs | OWN001 | _timeoutTimer | disposed via Dispose() -> StopTimer() -> Timer.WaitForDispose(); interprocedural custom dispose-sink not traced |
30 | | -NLog/NLog | AsyncTaskTarget.cs | OWN001 | _taskTimeoutTimer | disposed in Dispose(bool disposing) via Timer.WaitForDispose(); dispose-pattern override + custom sink not traced |
31 | | -NLog/NLog | AsyncTaskTarget.cs | OWN001 | _lazyWriterTimer | disposed in Dispose(bool disposing) via Timer.WaitForDispose(); dispose-pattern override + custom sink not traced |
32 | | -NLog/NLog | AsyncTargetWrapper.cs | OWN001 | _lazyWriterTimer | disposed in CloseTarget() -> StopLazyWriterThread() -> Timer.WaitForDispose(); lifecycle hook + custom sink not traced |
33 | | -NLog/NLog | BufferingTargetWrapper.cs | OWN001 | _flushTimer | disposed in CloseTarget() via Timer.WaitForDispose(); lifecycle hook + custom sink not traced |
| 29 | +NLog/NLog | TimeoutContinuation.cs | OWN001 | _timeoutTimer | disposed via Dispose() -> StopTimer() -> Timer.WaitForDispose() on the result of Interlocked.Exchange(ref _timeoutTimer, null) — a ref-exchange alias the extractor does not yet track (CallReleasesReceiver clears the direct/simple-alias siblings, not this one) |
| 30 | +# [fix-pending experiment] The four entries below are cleared by the CallReleasesReceiver |
| 31 | +# extractor fix (commit 6f4818c) — disabled here to confirm on a live NLog oracle run that |
| 32 | +# they no longer fire; if confirmed they are deleted, if they resurface they are restored. |
| 33 | +# NLog/NLog | AsyncTaskTarget.cs | OWN001 | _taskTimeoutTimer | disposed in Dispose(bool disposing) via Timer.WaitForDispose(); dispose-pattern override + custom sink not traced |
| 34 | +# NLog/NLog | AsyncTaskTarget.cs | OWN001 | _lazyWriterTimer | disposed in Dispose(bool disposing) via Timer.WaitForDispose(); dispose-pattern override + custom sink not traced |
| 35 | +# NLog/NLog | AsyncTargetWrapper.cs | OWN001 | _lazyWriterTimer | disposed in CloseTarget() -> StopLazyWriterThread() -> Timer.WaitForDispose(); lifecycle hook + custom sink not traced |
| 36 | +# NLog/NLog | BufferingTargetWrapper.cs | OWN001 | _flushTimer | disposed in CloseTarget() via Timer.WaitForDispose(); lifecycle hook + custom sink not traced |
34 | 37 |
|
35 | 38 | # --- protobuf-net/protobuf-net -------------------------------------------------- |
36 | 39 | protobuf-net/protobuf-net | ProtoWriter.BufferWriter.cs | OWN001 | _nullWriter | intentional null-object kept attached for pooled reuse; Dispose() documents "don't cascade dispose to the null one" |
|
0 commit comments