public void run() {
			try {
				while (true) {
					Resource cur;
					synchronized (queue) {
						while ((cur = queue.poll()) == null)
							queue.wait();
					}
					synchronized (cur) {
						handle(cur);
					}
					cur = null;
				}
			} catch (InterruptedException e) {
			} finally {
				synchronized (Loader.this) {
					/* Yes, I know there's a race condition. */
					th = null;
				}
			}
		}