Various Fixes and minor New Features
Added
- Added Finally block
- Added Timeout
- Added LockRunner protocol to abstract safe multithread access
Changed
- Change RetryControl closure into escaping
- Remove some mutating method to achieve more functional code, thus less effect to any outside variable
- Make some weak Dropable on closure strong, since in the real implementation, there's no one keeping the Dropable to be strong and the Dropable will always be released after the closure completed
Fixed
- Fix Aggregate not run the first aggregated request
- Fix RetryControl called when task is cancelled by checking the failure reason
Unit Test
- Added some unit test for aggregate
- Added validate and RetryControl to unit test
- Added unit test for decoder