diff options
| author | Carl Shapiro <cshapiro@google.com> | 2010-09-24 17:36:53 -0700 |
|---|---|---|
| committer | Carl Shapiro <cshapiro@google.com> | 2010-09-24 17:36:53 -0700 |
| commit | 1c9d0ab244da441d95a1f2abbb104a0b1015d5d5 (patch) | |
| tree | a027ac156fbb8281f89aafd4ded029fbff5b9db6 /vm/compiler/codegen/arm/CodegenFactory.c | |
| parent | 692597158c3e17fbafe80ec21895754017d4e9f1 (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
