Changeset 12200


Ignore:
Timestamp:
Jun 5, 2009, 5:06:12 PM (10 years ago)
Author:
gz
Message:

Merge r11962 into trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/level-0/l0-misc.lisp

    r11605 r12200  
    120120
    121121(defun %freebytes ()
    122   (%normalize-areas)
    123   (let ((res 0))
    124     (with-macptrs (p)
    125       (do-consing-areas (area)
    126         (when (eql (%fixnum-ref area target::area.code) area-dynamic)
    127           (%setf-macptr-to-object p  area)
    128           (incf res (- (%get-natural p target::area.high)
    129                        (%get-natural p target::area.active))))))
    130     res))
     122  (with-macptrs (p)
     123    (%setf-macptr-to-object p
     124                            (%fixnum-ref (%get-kernel-global 'all-areas)
     125                                         target::area.succ))
     126    (- (%get-natural p target::area.high)
     127       (%get-natural p target::area.active))))
    131128
    132129(defun %reservedbytes ()
     
    151148                       target::area.static-dnodes))
    152149(defun %usedbytes ()
    153   (%normalize-areas)
    154   (let ((static 0)
    155         (dynamic 0)
    156         (library 0))
    157       (do-consing-areas (area)
    158         (let* ((active (%fixnum-ref area target::area.active))
    159                (bytes (ash (- active
    160                             (%fixnum-ref area target::area.low))
    161                            target::fixnumshift))
    162                (code (%fixnum-ref area target::area.code)))
    163           (when (object-in-application-heap-p active)
    164             (if (eql code area-dynamic)
    165               (incf dynamic bytes)
    166               (if (eql code area-managed-static)
    167                 (incf library bytes)
    168                 (incf static bytes))))))
    169       (let* ((frozen-size (ash (frozen-space-dnodes) target::dnode-shift)))
    170         (decf dynamic frozen-size)
    171         (values dynamic static library frozen-size))))
     150  (with-lock-grabbed (*kernel-exception-lock*)
     151    (with-lock-grabbed (*kernel-tcr-area-lock*)
     152      (%normalize-areas)
     153      (let ((static 0)
     154            (dynamic 0)
     155            (library 0))
     156        (do-consing-areas (area)
     157          (let* ((active (%fixnum-ref area target::area.active))
     158                 (bytes (ash (- active
     159                                (%fixnum-ref area target::area.low))
     160                             target::fixnumshift))
     161                 (code (%fixnum-ref area target::area.code)))
     162            (when (object-in-application-heap-p active)
     163              (if (eql code area-dynamic)
     164                (incf dynamic bytes)
     165                (if (eql code area-managed-static)
     166                  (incf library bytes)
     167                  (incf static bytes))))))
     168        (let* ((frozen-size (ash (frozen-space-dnodes) target::dnode-shift)))
     169          (decf dynamic frozen-size)
     170          (values dynamic static library frozen-size))))))
    172171
    173172
Note: See TracChangeset for help on using the changeset viewer.