Replace the two-phase Load-check-Delete in cleanupOfflineNodes with xsync.Map.Compute() for atomic check-and-delete. This prevents the TOCTOU race where a node reconnects between the hasActiveConnections check and the Delete call. Add nil guards on all b.nodes.Load() and b.nodes.Range() call sites to prevent nil pointer panics from concurrent cleanup races. |
||
|---|---|---|
| .. | ||
| batcher.go | ||
| batcher_bench_test.go | ||
| batcher_concurrency_test.go | ||
| batcher_lockfree.go | ||
| batcher_test.go | ||
| batcher_unit_test.go | ||
| builder.go | ||
| builder_test.go | ||
| mapper.go | ||
| mapper_test.go | ||
| tail_test.go | ||