Skip to content

v1.1.0#20

Merged
danpasecinic merged 4 commits intomainfrom
development
Mar 7, 2026
Merged

v1.1.0#20
danpasecinic merged 4 commits intomainfrom
development

Conversation

@danpasecinic
Copy link
Owner

@danpasecinic danpasecinic commented Mar 7, 2026

What's Changed

Improvements

  • Upgrade Go version to 1.26.0
  • InvokeOptional now returns (Optional[T], error) to distinguish not-found from resolution failures
  • Pool overflow feedback via slog.Warn on Release
  • Scope selection guide and Replace API documentation in README
  • Updated benchmark numbers

Bug Fixes

  • Fix data race in Replace/ReplaceValue during concurrent resolution
  • Remove TOCTOU race in optional resolution (was using Has() + Resolve())

Refactoring

  • Replace all Unsafe lock-free methods with safe locked variants
  • Extract registerLocked/registerValueLocked helpers with defer-based unlock
  • Remove unused error constructors (errCircularDependency, errDuplicateService, errProviderFailed)

Tests

  • Add 6 concurrent stress tests with -race coverage

@danpasecinic danpasecinic self-assigned this Mar 7, 2026
@danpasecinic danpasecinic merged commit 2e255b1 into main Mar 7, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant