// Example program
#include <iostream>
#include <string>
#include <mutex>
#include <map>
#include <thread>
struct sObjectInfo {
std::mutex mut;
};
std::map<int, sObjectInfo*> mymap;
void foo() {
std::unique_lock<std::mutex> ulock(mymap[0]->mut, std::defer_lock);
if (ulock.try_lock()) {
std::cout << "locked.." << std::endl;
}
else {
std::cout << "cant lock" << std::endl;
}
}
int main()
{
sObjectInfo* s1 = new sObjectInfo();
sObjectInfo* s2 = new sObjectInfo();
mymap[0] = s1;
mymap[1] = s2;
std::thread t1(foo);
t1.join();
}
Ly8gRXhhbXBsZSBwcm9ncmFtCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPG11dGV4PgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8dGhyZWFkPgoKc3RydWN0IHNPYmplY3RJbmZvIHsKICAgIHN0ZDo6bXV0ZXggbXV0Owp9OwoKc3RkOjptYXA8aW50LCBzT2JqZWN0SW5mbyo+IG15bWFwOwoKdm9pZCBmb28oKSB7CiAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IHVsb2NrKG15bWFwWzBdLT5tdXQsIHN0ZDo6ZGVmZXJfbG9jayk7CiAgICBpZiAodWxvY2sudHJ5X2xvY2soKSkgewogICAgICAgIHN0ZDo6Y291dCA8PCAibG9ja2VkLi4iIDw8IHN0ZDo6ZW5kbDsKICAgIH0KICAgIGVsc2UgewogICAgICAgIHN0ZDo6Y291dCA8PCAiY2FudCBsb2NrIiA8PCBzdGQ6OmVuZGw7CiAgICB9Cn0KCmludCBtYWluKCkKewogIHNPYmplY3RJbmZvKiBzMSA9IG5ldyBzT2JqZWN0SW5mbygpOwogIHNPYmplY3RJbmZvKiBzMiA9IG5ldyBzT2JqZWN0SW5mbygpOwogIAogIG15bWFwWzBdID0gczE7CiAgbXltYXBbMV0gPSBzMjsKICAKICBzdGQ6OnRocmVhZCB0MShmb28pOwogIHQxLmpvaW4oKTsKfQo=