Someone
public text v1 · immutablebool queue_peek(struct event_queue *q, struct queue_event *ev)
{
if (q->read == q->write)
return false;
bool have_msg = false;
int oldlevel = set_irq_level(HIGHEST_IRQ_LEVEL);
corelock_lock(&q->cl);
if (q->read != q->write)
{
*ev = q->events[q->read & QUEUE_LENGTH_MASK];
have_msg = true;
}
corelock_unlock(&q->cl);
set_irq_level(oldlevel);
return have_msg;
}