public void unbind(boolean force) {
		if (!force) {
			// Cancel all outgoing requests, and send a NOT_INTERESTED message to
			// the peer.
			this.cancelPendingRequests();
			this.send(Message.NotInterestedMessage.craft());
		}

		synchronized (this.exchangeLock) {
			if (this.exchange != null) {
				if (force) {
					this.exchange.terminate();
				} else {
					this.exchange.close();
				}

				this.exchange = null;
			}
		}

		this.firePeerDisconnected();
		this.requestedPiece = null;
	}