harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ligang Wang" <wanglg9...@gmail.com>
Subject Re: java.lang.ref.ReferenceQueue.enqueue allocates array during GC
Date Thu, 26 Jun 2008 01:33:04 GMT
As Tim said the implementation of ReferenceQueue in DRLVM kernel classes
uses linked list rather than array. What Xiao-Feng said is also the case. In
DRLVM, VM finds out those references that need enqueue and put them into a
VM queue during GC. The VM queue is implemented in array. Immediately after
GC the enqueue() method is invoked. This action detaches the according
reference from the VM queue and linkes it into ReferenceQueue.

Thanks,
ligang


On 6/25/08, Xiao-Feng Li <xiaofeng.li@gmail.com> wrote:
>
> IIRC, Harmony enqueues the objects into a VM queue (C structure); then
> after GC, the enqueue() methods are really invoked for all of them in
> the VM queue. This is similar to the finalization processing. I need
> double check.
>
> Thanks,
> xiaofeng
>
> On Wed, Jun 25, 2008 at 8:48 PM, Ian Rogers <rogers.email@gmail.com>
> wrote:
> > Hi,
> >
> > I'm having a problem with java.lang.ref.ReferenceQueue.enqueue in that it
> > queues references onto an array during GC, and that this array may need
> to
> > be grown during the GC. Generating new objects during GC is something of
> a
> > gray area, in the VM I'm working with it is not allowed. An alternative
> is
> > to have a field in Reference that allows references to be linked
> together.
> > Should this approach be adopted for all of Harmony or just within our VM?
> >
> > Thanks,
> > Ian Rogers
> > --
> > http://www.cs.man.ac.uk/~irogers/
> >
>
>
>
> --
> http://xiao-feng.blogspot.com
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message