Changeset 7600 for branches/working-0710


Ignore:
Timestamp:
Nov 6, 2007, 6:29:59 PM (12 years ago)
Author:
gb
Message:

Add ATOMIC-POP-UVECTOR-CELL.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/working-0710/ccl/level-0/l0-misc.lisp

    r7581 r7600  
    732732          (return cell))))))
    733733
     734(defun atomic-pop-uvector-cell (v i)
     735  (let* ((offset (+ target::misc-data-offset (ash i target::word-shift))))
     736    (loop
     737      (let* ((old (%svref v i)))
     738        (if (null old)
     739          (return (values nil nil))
     740          (let* ((tail (cdr old)))
     741            (when (%store-node-conditional offset v old tail)
     742              (return (values (car old) t)))))))))
     743
     744
    734745(defun store-gvector-conditional (index gvector old new)
    735746  (%store-node-conditional (+ target::misc-data-offset
Note: See TracChangeset for help on using the changeset viewer.