the return value here doesnt indicate success. It indicates whether the thread was the first thread to initialize the variables, but I will change it anyways.