1. A method of facilitating non-blocking access to a double-ended queue (deque) encoded using a doubly-linked-list of nodes and opposing-end identifiers, the method comprising: defining linearizable push and pop operations operable on opposing-ends of the deque, wherein, for at least those deque states of two or more nodes, opposing-end executions of the pop operation include a linearizable synchronization operation on disjoint pairs of storage locations; for at least those deque states of exactly two nodes, handling potentially concurrent execution of opposing-end pop operations by encoding a distinguishing pointer value in a popped node; and treating presence of the distinguishing pointer value in a node identified by one of the end identifiers as indicative of a logically empty deque.