From 267875ef02b9446e463c6f48b0930694f1b86716 Mon Sep 17 00:00:00 2001 From: scipio Date: Wed, 20 Jan 2010 19:59:07 +0000 Subject: [PATCH] Remove rounding error in PoolP.nc, fix async warnings in BitVectorC. --- tos/system/BitVectorC.nc | 8 ++++---- tos/system/PoolP.nc | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tos/system/BitVectorC.nc b/tos/system/BitVectorC.nc index b3387934..81648479 100644 --- a/tos/system/BitVectorC.nc +++ b/tos/system/BitVectorC.nc @@ -75,22 +75,22 @@ implementation async command bool BitVector.get(uint16_t bitnum) { - return (m_bits[getIndex(bitnum)] & getMask(bitnum)) ? TRUE : FALSE; + atomic {return (m_bits[getIndex(bitnum)] & getMask(bitnum)) ? TRUE : FALSE;} } async command void BitVector.set(uint16_t bitnum) { - m_bits[getIndex(bitnum)] |= getMask(bitnum); + atomic {m_bits[getIndex(bitnum)] |= getMask(bitnum);} } async command void BitVector.clear(uint16_t bitnum) { - m_bits[getIndex(bitnum)] &= ~getMask(bitnum); + atomic {m_bits[getIndex(bitnum)] &= ~getMask(bitnum);} } async command void BitVector.toggle(uint16_t bitnum) { - m_bits[getIndex(bitnum)] ^= getMask(bitnum); + atomic {m_bits[getIndex(bitnum)] ^= getMask(bitnum);} } async command void BitVector.assign(uint16_t bitnum, bool value) diff --git a/tos/system/PoolP.nc b/tos/system/PoolP.nc index 14dbec66..9011d6cf 100644 --- a/tos/system/PoolP.nc +++ b/tos/system/PoolP.nc @@ -105,7 +105,7 @@ implementation { return FAIL; } else { - uint8_t emptyIndex = (index + free); + uint16_t emptyIndex = (index + free); if (emptyIndex >= size) { emptyIndex -= size; } -- 2.39.2