producer consumer problem go version