define(function (require) {
var ATTR = '\0_ec_interaction_mutex';
var interactionMutex = {
take: function (key, zr) {
getStore(zr)[key] = true;
},
release: function (key, zr) {
getStore(zr)[key] = false;
},
isTaken: function (key, zr) {
return !!getStore(zr)[key];
}
};
function getStore(zr) {
return zr[ATTR] || (zr[ATTR] = {});
}
return interactionMutex;
});
|