http://en.cppreference.com/w/cpp/memory/weak_ptr/lock