working with non blocking channel operations