diff options
author | neal <neal> | 2007-12-31 17:34:52 +0000 |
---|---|---|
committer | neal <neal> | 2007-12-31 17:34:52 +0000 |
commit | 6928cce31996bcfc099221d567d8d9519de16c6d (patch) | |
tree | 00fef83e2869b1bf129772fff96ead080b4d6349 /viengoos/activity.c | |
parent | 776f2473127211512262dfe868bfb4a4227fc43c (diff) |
2007-12-31 Neal H. Walfield <neal@gnu.org>
* list.h: New file.
* Makefile.am (viengoos_SOURCES): Add list.h.
(t_link_SOURCES): Remove object.h. Add list.h.
* object.h: Include "list.h".
(LINK_TEMPLATE): Move from here...
* list.h: ... to this new file. Generalize functionality. Add
count, head, prev, next and prev methods. Rename LINK_TEMPLATE to
LIST_CLASS. Update users.
* object.h (struct object_desc): Change activity_lru and
global_lru to struct list_node's.
(global_active): Change to a struct object_global_lru_list.
(global_inactive_dirty): Likewise.
(global_inactive_clean): Likewise.
(disowned): Change to a struct object_activity_lru_list.
* object.c (global_active): Change to a struct
object_global_lru_list.
(global_inactive_dirty): Likewise.
(global_inactive_clean): Likewise.
(disowned): Change to a struct object_activity_lru_list.
* activity.h (struct activity): Change active, inactive_clean and
inactive_dirty to struct object_activity_lru_list's.
Diffstat (limited to 'viengoos/activity.c')
-rw-r--r-- | viengoos/activity.c | 30 |
1 files changed, 8 insertions, 22 deletions
diff --git a/viengoos/activity.c b/viengoos/activity.c index 37395e5..eeabf09 100644 --- a/viengoos/activity.c +++ b/viengoos/activity.c @@ -117,17 +117,17 @@ activity_destroy (struct activity *activity, struct activity *victim) ss_mutex_lock (&lru_lock); struct object_desc *desc; int count = 0; - while ((desc = victim->active)) + while ((desc = object_activity_lru_list_head (&victim->active))) { object_desc_disown_simple (desc); count ++; } - while ((desc = victim->inactive_clean)) + while ((desc = object_activity_lru_list_head (&victim->inactive_clean))) { object_desc_disown_simple (desc); count ++; } - while ((desc = victim->inactive_dirty)) + while ((desc = object_activity_lru_list_head (&victim->inactive_dirty))) { object_desc_disown_simple (desc); count ++; @@ -146,7 +146,8 @@ activity_destroy (struct activity *activity, struct activity *victim) struct object_desc *desc; ss_mutex_lock (&lru_lock); - for (desc = victim->active; desc; desc = desc->activity_lru.next) + for (desc = object_activity_lru_list_head (&victim->active); + desc; desc = object_activity_lru_list_next (desc)) debug (0, " %llx: %s", desc->oid, cap_type_string (desc->type)); ss_mutex_unlock (&lru_lock); } @@ -192,24 +193,9 @@ do_activity_dump (struct activity *activity, int indent) memset (indent_string, ' ', indent); indent_string[indent] = 0; - int active = 0; - struct object_desc *desc; - for (desc = activity->active; desc; - desc = (desc->activity_lru.next == activity->active - ? NULL : desc->activity_lru.next)) - active ++; - - int dirty = 0; - for (desc = activity->inactive_dirty; desc; - desc = (desc->activity_lru.next == activity->inactive_dirty - ? NULL : desc->activity_lru.next)) - dirty ++; - - int clean = 0; - for (desc = activity->inactive_clean; desc; - desc = (desc->activity_lru.next == activity->inactive_clean - ? NULL : desc->activity_lru.next)) - clean ++; + int active = object_activity_lru_list_count (&activity->active); + int dirty = object_activity_lru_list_count (&activity->inactive_dirty); + int clean = object_activity_lru_list_count (&activity->inactive_clean); printf ("%s %llx: %d frames (active: %d, dirty: %d, clean: %d)\n", indent_string, |