aboutsummaryrefslogtreecommitdiff
path: root/vm/compiler/codegen/arm/CodegenFactory.c
diff options
context:
space:
mode:
authorCarl Shapiro <cshapiro@google.com>2010-09-24 17:36:53 -0700
committerCarl Shapiro <cshapiro@google.com>2010-09-24 17:36:53 -0700
commit1c9d0ab244da441d95a1f2abbb104a0b1015d5d5 (patch)
treea027ac156fbb8281f89aafd4ded029fbff5b9db6 /vm/compiler/codegen/arm/CodegenFactory.c
parent692597158c3e17fbafe80ec21895754017d4e9f1 (diff)
Wait for the GC to quiesce before attempting foreground GCs.
Previously, dvmTrackExternalAllocation waited for the GC to complete before retrying its allocation. However, there is no guarantee that the GC will not be active at the time we are woken. Furthermore, the code did not revalidate that the external allocation is still possible, an assumption made by all externalAlloc calls. With this change, the code loops until the GC is no longer active, validates that the allocation is still possible, and then proceeds with its routine for allocating additional storage. In addition, if we try a few heroic measures to establish the externalAllocPossible invariant rather than immediately failing the call. Change-Id: I2e3b8a6c9fab617990edc085f52d0df35ad6d0f6
Diffstat (limited to 'vm/compiler/codegen/arm/CodegenFactory.c')
0 files changed, 0 insertions, 0 deletions