Use CAS to replace sync.Once in setResult function, improve the performance