use comm_channel instead of self-defined pipe + reframe structre