How to implement System verilog Mailbox's Peek behavior using System Verilog Queue?

In reply to dave_59:

thanks for correcting, so final code will look like following:

int que[$]; //queue declaration
...
task peek(output int message);
    wait (que.size > 0
    message = que.pop_front(); // Pop queue content 
    que.push_front(message);   // Push message back in front
endtask