try ugly nonblock/block switch