+ * The caller must wait for a grace period before:
+ * - freeing the returned node.
+ * - modifying the ->next pointer of the returned node. (be careful with unions)
+ * - passing the returned node back to push() on the same stack they got it
+ * from.
+ *