summaryrefslogtreecommitdiff
path: root/viengoos/activity.c
diff options
context:
space:
mode:
authorneal <neal>2007-12-31 17:34:52 +0000
committerneal <neal>2007-12-31 17:34:52 +0000
commit6928cce31996bcfc099221d567d8d9519de16c6d (patch)
tree00fef83e2869b1bf129772fff96ead080b4d6349 /viengoos/activity.c
parent776f2473127211512262dfe868bfb4a4227fc43c (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.c30
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,