 extension ResourceStoreRegistration: ResourceEventProducerProtocol {
 	public func addEventObserver(on queue: DispatchQueue, action: @escaping (ResourceEvent<Store.Request>) -> Void) -> Disposable {
 		let observer = DispatchObserver(queue: queue, action: action)
-		return eventObserver.add(observer)
+		let disposable = eventObserver.add(observer)
+		self.disposable += disposable
+		return disposable
 	}
 }
 

					}
					semaphore.signal()
				}
				receipt.transferDisposable += { progress?.cancel() }
				receipt.eventObserver.observe(.transferStarted(resourceRequest, peer, progress))
				semaphore.wait()
			}
			receipt.transferDisposable += { item.cancel() }
			transferQueue.async(execute: item)
		}


	public let request: Request
	public let peers: [Peer]

	fileprivate let disposable = CompositeDisposable()
	fileprivate let eventObserver = CompositeObserver<Event>()

	fileprivate init(request: Request, peers: [Peer]) {
