Let cleaners get cleaned again.

When cleaners are "enqueued" by the GC, their clean() method must
be called. They must not be enqueued on the dummy reference queue
they're associated with - nobody's waiting for them there.

Their clean method is run on the "ReferenceQueueDaemon" thread, and
can also be invoked by explicitly calling "enqueue" method inherited
from PhantomReference.

bug: 26014645

Change-Id: I2ec733f99a3606f3f69af0a22240b1ccd8c4fe7c
2 files changed