[svn:parrot] r47484 - branches/gc_massacre/src/gc
bacek at svn.parrot.org
bacek at svn.parrot.org
Tue Jun 8 22:30:11 UTC 2010
Author: bacek
Date: Tue Jun 8 22:30:11 2010
New Revision: 47484
URL: https://trac.parrot.org/parrot/changeset/47484
Log:
Extract Parrot_gc_get_info from gc_ms_get_gc_info with statistics
related stuff.
Modified:
branches/gc_massacre/src/gc/gc_ms.c
branches/gc_massacre/src/gc/gc_private.h
Modified: branches/gc_massacre/src/gc/gc_ms.c
==============================================================================
--- branches/gc_massacre/src/gc/gc_ms.c Tue Jun 8 22:22:20 2010 (r47483)
+++ branches/gc_massacre/src/gc/gc_ms.c Tue Jun 8 22:30:11 2010 (r47484)
@@ -1905,12 +1905,6 @@
Memory_Pools * const mem_pools = interp->mem_pools;
switch (which) {
- case TOTAL_MEM_ALLOC:
- return mem_pools->stats.memory_allocated;
- case GC_MARK_RUNS:
- return mem_pools->stats.gc_mark_runs;
- case GC_COLLECT_RUNS:
- return mem_pools->stats.gc_collect_runs;
case ACTIVE_PMCS:
return mem_pools->pmc_pool->total_objects -
mem_pools->pmc_pool->num_free_objects;
@@ -1920,17 +1914,38 @@
return mem_pools->pmc_pool->total_objects;
case TOTAL_BUFFERS:
return gc_ms_total_sized_buffers(mem_pools);
+ case IMPATIENT_PMCS:
+ return mem_pools->num_early_gc_PMCs;
+ default:
+ return Parrot_gc_get_info(interp, which, &mem_pools->stats);
+ break;
+ }
+ return 0;
+}
+
+/*
+TODO Move it somewhere.
+*/
+size_t
+Parrot_gc_get_info(PARROT_INTERP, Interpinfo_enum which, ARGIN(GC_Statistics *stats))
+{
+ ASSERT_ARGS(Parrot_gc_get_info)
+
+ switch (which) {
+ case TOTAL_MEM_ALLOC:
+ return stats->memory_allocated;
+ case GC_MARK_RUNS:
+ return stats->gc_mark_runs;
+ case GC_COLLECT_RUNS:
+ return stats->gc_collect_runs;
case HEADER_ALLOCS_SINCE_COLLECT:
- return mem_pools->stats.header_allocs_since_last_collect;
+ return stats->header_allocs_since_last_collect;
case MEM_ALLOCS_SINCE_COLLECT:
- return mem_pools->stats.mem_allocs_since_last_collect;
+ return stats->mem_allocs_since_last_collect;
case TOTAL_COPIED:
- return mem_pools->stats.memory_collected;
- case IMPATIENT_PMCS:
- return mem_pools->num_early_gc_PMCs;
+ return stats->memory_collected;
case GC_LAZY_MARK_RUNS:
- return mem_pools->stats.gc_lazy_mark_runs;
- case EXTENDED_PMCS:
+ return stats->gc_lazy_mark_runs;
default:
break;
}
Modified: branches/gc_massacre/src/gc/gc_private.h
==============================================================================
--- branches/gc_massacre/src/gc/gc_private.h Tue Jun 8 22:22:20 2010 (r47483)
+++ branches/gc_massacre/src/gc/gc_private.h Tue Jun 8 22:30:11 2010 (r47484)
@@ -582,6 +582,12 @@
__attribute__nonnull__(2)
FUNC_MODIFIES(*pmc);
+size_t Parrot_gc_get_info(PARROT_INTERP,
+ Interpinfo_enum which,
+ ARGIN(GC_Statistics *stats))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3);
+
void Parrot_gc_ms_init(PARROT_INTERP)
__attribute__nonnull__(1);
@@ -605,6 +611,9 @@
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(pmc))
+#define ASSERT_ARGS_Parrot_gc_get_info __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(stats))
#define ASSERT_ARGS_Parrot_gc_ms_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
More information about the parrot-commits
mailing list