1 #1: Ordering parameters
3 wildcard8 -> sc (fence in take())
4 wildcard12 -> sc (update of top in take())
5 *wildcard23 -> release (update of array in resize())
6 wildcard25 -> acquire (load of top in push())
7 *wildcard31 -> release (fence in push())
8 wildcard33 -> acquire (load of top in steal())
9 wildcard34 -> sc (fence in steal())
10 *wildcard35 -> acquire (load of bottom in steal())
11 *wildcard36 -> acquire (load of array in steal())
12 wildcard39 -> sc (update of top in steal())
17 Update of array in resize(), should be release; since only steal() need to
18 establish hb, so in steal wildcard36 should be acquire.
20 wildcard31 -> release (fence)
22 Establish hb between push() and steal() via the variable bottom.
25 wildcard12 -> release (at least)
26 Establish hb between take() and steal() when there's only one element in the
27 deque, and take() gets the last element. The hb ensures that the steal() will
28 see the updated bottom in take().