parent: waiting...
child: send: 'a'
child: waiting...
parent: read: 'a'
parent: resp: 'ack a'
parent: waiting...
child: recv: 'ack a'
child: send: 'b'
child: waiting...
parent: read: 'b'
parent: resp: 'ack b'
parent: waiting...
child: recv: 'ack b'
child: send: 'c'
child: waiting...
parent: read: 'c'
parent: resp: 'ack c'
parent: waiting...
child: recv: 'ack c'
child: done.
parent: stopped. cleanup...
parent: done; child exit code: 0