error checking
common exception printing
- shutdown in SIGINT
- producer and consumer would work forever
- default thread count depends on hardware capabilities