# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.3.0] - 2025-12-09
### Added
- Configurable max jobs queue limit with `max_jobs()` builder method
- Backpressure with exponential backoff (1ms → 50ms ceiling) when queue is full
- Thread-safe job count tracking with `AtomicUsize`
- Builder pattern API: `ThreadPool::new(5).max_jobs(100_000)`
- Default max_jobs limit of 50,000 to prevent unbounded memory growth
### Changed
- `execute()` now blocks with exponential backoff when queue is full instead of unbounded queueing
- `Worker::new()` signature updated to track job count decrements
- Worker threads now decrement job count after completing each job
## [0.2.0] - 2025-12-09
### Added
- added `kill_signal` handling for the pool
## [0.1.1] - 2025-12-09
### Fixed
- expose `new` Method on Threadpool instead of forcing all clients to use `default`
## [0.1.0] - 2025-12-05
### Added
- Added initial public release with tests