+act - Adds a non-blocking, bounded, MPSC mailbox with tests.

You can cache the getDeq().count value for checking capacity until the cached value is no longer allowing progress.
    long lastObesrevedDeqCount;// producer accessed field
    // offer()...
       if(lastNodeCount - lastObesrevedDeqCount >= capacity)
          lastObesrevedDeqCount = getDeq().count;
From there move on to checking again against new value. This should prevent a likely read miss and is usually a good optimisation for producers as queues are almost always near empty.