comsumer_t and producer_t base on proxyio_t