Use RIIA on locks in try_push functions via unique_lock instead of mutex.lock() and mutex.unlock().
This is for exception safety. If the elements copy/move constructor throws in push() the old method would deadlock.