}
bool isCurrentBufferLocked() {
- return (receiveState.which)? receiveState.bufZeroLocked : receiveState.bufOneLocked;
+ return (receiveState.which)? receiveState.bufOneLocked : receiveState.bufZeroLocked;
}
void lockCurrentBuffer() {
receiveTaskSize = recvIndex;
receiveBufferSwap();
receiveState.state = RECV_STATE_IDLE;
+ } else {
+ // we can't deliver the packet, better free the current buffer.
+ unlockBuffer(receiveState.which);
}
}
if (postsignalreceive){