for(uint y=0; y<10; ++y){ auto m = new Mutex(); writeln(&m); } run: 7F66E5A05CF8 7F66E5A05CF8 7F66E5A05CF8 7F66E5A05CF8 7F66E5A05CF8 7F66E5A05CF8 7F66E5A05CF8 7F66E5A05CF8 7F66E5A05CF8 7F66E5A05CF8 As I understand it, all the time return one object But: auto m = new Mutex(); writeln(&m); auto m1 = new Mutex(); writeln(&m1); run: 7FCF60698CF0 7FCF60698CF8