reqResId = call Queue.dequeue();
state = RES_GRANTING;
post grantedTask();
+ call ResourceConfigure.unconfigure[id]();
}
else {
resId = default_owner_id;
state = RES_CONTROLLED;
+ call ResourceConfigure.unconfigure[id]();
signal ResourceDefaultOwner.granted();
}
- call ResourceConfigure.unconfigure[id]();
+ return SUCCESS;
}
}
return FAIL;
}
async command uint8_t ResourceDefaultOwner.isOwner() {
- atomic return (state == RES_CONTROLLED);
+ atomic return (state == RES_CONTROLLED
+ || (resId == default_owner_id
+ && (state == RES_GRANTING || state == RES_IMM_GRANTING)));
}
task void grantedTask() {