 				// So we'll flag Interrupted events specially, and if it
 				// happened to occur while we're sending something else,
 				// we'll wait to deliver it.
-				self.interrupted.value = true
+				interrupted.value = true
 
 				if self.sendLock.tryLock() {
 					self.interrupt()
 					self.sendLock.unlock()
 
-					self.generatorDisposable.dispose()
+					generatorDisposable.dispose()
 				}
 
 			default:

					if event.isTerminating || shouldInterrupt {
						// Dispose only after notifying observers, so disposal logic
						// is consistently the last thing to run.
						self.generatorDisposable.dispose()
					}
				}
			}


	/// Used to ensure that events are serialized during delivery to observers.
	private let sendLock = NSLock()

	/// Initializes a Signal that will immediately invoke the given generator,
	/// then forward events sent to the given observer.
