You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Eliminated multiple data races in concurrent rotations and mill goroutines.
10
+
Internal logic now snapshots configuration and system functions once for each logger instance to ensure safe concurrent use.
11
+
12
+
* Added deterministic shutdown for background goroutines (`mill` and `scheduled rotation`) via `WaitGroup` synchronization, preventing premature exits or leaks.
13
+
14
+
* Strengthened `Close()` to wait safely for goroutine completion without holding locks.
15
+
16
+
* Improved test suite:
17
+
- Fake clock (`fakeCurrentTime`) is now lock-protected to avoid race conditions.
18
+
- Tests force UTC for consistent local-time behavior.
19
+
- CI now runs with `go test -race` to verify concurrency safety.
20
+
21
+
### Internal Changes
22
+
23
+
* Introduced `resolveConfigLocked()` for snapshotting logger configuration (time, compression, stat/rename/remove functions) at initialization.
24
+
* Simplified mill and rotation goroutine lifecycle management.
25
+
* Minor refactoring for clarity and reduced global variable reads.
0 commit comments