Solutions to 6 classical problems in concurrent programming