Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: libadblockplus-android/src/org/adblockplus/libadblockplus/Disposer.java

Issue 29678581: Issue 6000 - Rename "libadblockplus-android" (Closed)
Patch Set: addressed comments Created Jan. 29, 2018, 11:04 a.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: libadblockplus-android/src/org/adblockplus/libadblockplus/Disposer.java
diff --git a/libadblockplus-android/src/org/adblockplus/libadblockplus/Disposer.java b/libadblockplus-android/src/org/adblockplus/libadblockplus/Disposer.java
deleted file mode 100644
index 313a91bb3b2d945ceb5ac05e94c0ba3fd58285f5..0000000000000000000000000000000000000000
--- a/libadblockplus-android/src/org/adblockplus/libadblockplus/Disposer.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * This file is part of Adblock Plus <https://adblockplus.org/>,
- * Copyright (C) 2006-present eyeo GmbH
- *
- * Adblock Plus is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 3 as
- * published by the Free Software Foundation.
- *
- * Adblock Plus is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>.
- */
-
-package org.adblockplus.libadblockplus;
-
-import java.lang.ref.ReferenceQueue;
-import java.lang.ref.WeakReference;
-import java.util.HashSet;
-
-public final class Disposer extends WeakReference<Disposable>
-{
- static final ReferenceQueue<Disposable> referenceQueue = new ReferenceQueue<Disposable>();
- private static final HashSet<Disposer> disposerSet = new HashSet<Disposer>();
- private final Disposable disposable;
- private volatile boolean disposed = false;
-
- static
- {
- final Thread thread = new Thread(new Cleaner());
- thread.setName(Cleaner.class.getCanonicalName());
- thread.setDaemon(true);
- thread.start();
- }
-
- public Disposer(final Disposable referent, final Disposable disposable)
- {
- super(referent, referenceQueue);
- this.disposable = disposable;
-
- synchronized (disposerSet)
- {
- disposerSet.add(this);
- }
- }
-
- public synchronized void dispose()
- {
- if (!this.disposed)
- {
- try
- {
- this.disposable.dispose();
- }
- catch (final Throwable t)
- {
- // catch to set state to 'disposed' on all circumstances
- }
-
- this.disposed = true;
- synchronized (disposerSet)
- {
- disposerSet.remove(this);
- }
- }
- }
-
- private static final class Cleaner implements Runnable
- {
- public Cleaner()
- {
- //
- }
-
- @Override
- public void run()
- {
- for (;;)
- {
- try
- {
- ((Disposer) Disposer.referenceQueue.remove()).dispose();
- }
- catch (final Throwable t)
- {
- // ignored
- }
- }
- }
- }
-}

Powered by Google App Engine
This is Rietveld