final boolean transferForSignal(Node node){
  if (!compareAndSetWaitStatus(node,Node.CONDITION,0))   return false;
  Node p=enq(node);
  int ws=p.waitStatus;
  if (ws > 0 || !compareAndSetWaitStatus(p,ws,Node.SIGNAL))   LockSupport.unpark(node.thread);
  return true;
}

final boolean transferForSignal ( Node node ) { if ( ! compareAndSetWaitStatus ( node , Node . CONDITION , 0 ) ) return false ; Node p = enq ( node ) ; int ws = p . waitStatus ; if ( ws > 0 || ! compareAndSetWaitStatus ( p , ws , Node . SIGNAL ) ) LockSupport . unpark ( node . thread ) ; return true ; }
transfers a node from a condition queue onto sync queue . returns true if successful .
