142 |
|
* that using very small constants in the range of 1-3 work best |
143 |
|
* over a range of platforms. Larger values introduce increasing |
144 |
|
* costs of cache misses and risks of long traversal chains, while |
145 |
< |
* smaller values increase CAS contentiona and overhead. |
145 |
> |
* smaller values increase CAS contention and overhead. |
146 |
|
* |
147 |
|
* Dual queues with slack differ from plain M&S dual queues by |
148 |
|
* virtue of only sometimes updating head or tail pointers when |
252 |
|
* efficient explicit control paths instead of letting JVMs insert |
253 |
|
* implicit NullPointerExceptions when they are null. While not |
254 |
|
* currently fully implemented, we also leave open the possibility |
255 |
< |
* of re-nulling these fields when empty (which is is complicated |
256 |
< |
* to arrange, for little benefit.) |
255 |
> |
* of re-nulling these fields when empty (which is complicated to |
256 |
> |
* arrange, for little benefit.) |
257 |
|
* |
258 |
|
* All enqueue/dequeue operations are handled by the single method |
259 |
|
* "xfer" with parameters indicating whether to act as some form |