It it possible to tweak this such that the `push` methods do not block when full, but instead pop from the other end like a classic ring buffer? If it requires significant changes, perhaps you could publish that separately?