non blocking io done