In fact, I think this type of thread pool would be useful in implementing arbitrary-size S3 uploads. I could adapt this to work similarly to your thread pool, but with the stronger synchronization guarantees and exception forwarding (I could reimplement that properly using break-thread; do you think exception forwarding is a good idea here?).