X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=tos%2Fsystem%2FSharedArbiterP.nc;h=aa9260693c5d39fc3c5205031034f3059885e699;hb=a2bb24f03eb12b5745ff8680dc70c75c3a9983bb;hp=1228c2a19c4f314441e4d77039eb13da49e4d60f;hpb=517a91449b03531a02547ae840346474e7891f45;p=tinyos-2.x.git diff --git a/tos/system/SharedArbiterP.nc b/tos/system/SharedArbiterP.nc index 1228c2a1..aa926069 100644 --- a/tos/system/SharedArbiterP.nc +++ b/tos/system/SharedArbiterP.nc @@ -33,12 +33,10 @@ * switched subsystem. For example, a communications bus that can handle IO * for multiple clients simultaneously, but is powered down when not in use. * - * p_dfltOwnerId = uniqueCount() use by the resource. see SharedArbiterC - * * @author R. Steve McKown */ -generic module SharedArbiterP(uint8_t p_dfltOwnerId) { +generic module SharedArbiterP() { provides { interface Init; interface Resource[uint8_t id]; @@ -175,14 +173,11 @@ implementation { async command error_t ResourceDefaultOwner.release() { - atomic { - if (m_requesting > 0) { - call State.forceState(S_GRANTED); - post grantedTask(); - return SUCCESS; - } else - return FAIL; - } + if (call State.requestState(S_GRANTED) == SUCCESS) { + post grantedTask(); + return SUCCESS; + } else + return FAIL; } async command bool ArbiterInfo.inUse()