the DEC Alpha ultra-weak memory model is not supported
example
Ringbuffer<const char*, 256> message;
int main()
{
//...
while(1)
{
const char* tmp = nullptr;
while(!message.remove(tmp));
printf("%s fired\n", tmp);
//...
}
}
// if multiple contexts are writing/reading buffer they shall not be interrupting each other
// in this case, those interrupts have to be of the same priority (nesting not allowed)
extern "C" void SysTick_Handler(void)
{
message.insert("SysTick_Handler");
}
extern "C" void USART2_IRQHandler(void)
{
message.insert("USART2_IRQHandler");
//...
}
About
simple C++11 ring buffer implementation, allocated and evaluated at compile time