rewrite sleeping-barber using core.async