 	public let readPipe: Pipe
 	public let writePipe: Pipe
 
-	#if os(macOS)
 	private let readIO: DispatchIO
-	#endif
 	private let readQueue = DispatchQueue(label: "discordVoiceEncoder.readQueue")
 	private let writeQueue = DispatchQueue(label: "discordVoiceEncoder.writeQueue")
 

		self.ffmpeg = ffmpeg
		self.readPipe = readPipe
		self.writePipe = writePipe
		#if os(macOS)
		self.readIO = DispatchIO(type: .stream, fileDescriptor: writePipe.fileHandleForReading.fileDescriptor,
			queue: readQueue,
			cleanupHandler: {_ in })

		readIO.setLimit(lowWater: 1)
		#endif

		self.ffmpeg.launch()
	}

	public func read(callback: @escaping (Bool, DispatchData?, Int32) -> Void) {
		assert(!encoderClosed, "Tried reading from a closed encoder")

		readIO.read(offset: 0, length: 320, queue: readQueue, ioHandler: callback)
	}

	public func write(_ data: Data, doneHandler: (() -> Void)? = nil) {
