 {
 	public func createAudioStream() -> ReadableStream<AudioData>
 	{
+		let tokenSource = CancellationTokenSource()
 		let stream = Streams.Stream<AudioData>()
+		stream.addDownstreamDisposable(Scope {
+			tokenSource.cancel()
+		})
+
 		var description: AudioStreamBasicDescription? = nil
 
 		let parse = try! AFSUtility.CreateCustomAudioStreamParser(

		})

		DispatchQueue.global().async {
			while let data = self.read(maxBytes: 4 * 1024) {
				try! parse(data)
			}
		}

import AudioToolbox
import Foundation
import Cancellation
import Scope
import Sockets
import Streams

