 				if case let .alive(state) = signal.status {
 					state.send(event)
 
+					// Check if the status has been bumped to `terminating` due to a
+					// concurrent or a recursive termination event.
+					//
+					// Note that as the check happens before acquiring `statusLock`, it
+					// could be a false positive, and thus a second check after the lock
+					// is acquired is mandatory.
 					if case .terminating = signal.status {
-						// Acquire `statusLock`, and handle the termination if the signal
-						// is still at `terminating` state.
+						// Acquire `statusLock`. If the termination has still not yet been
+						// handled, take it over and bump the status to `terminated`.
 						signal.statusLock.lock()
+
 						if case let .terminating(state) = signal.status {
 							signal.status = .terminated
 							signal.statusLock.unlock()
+
 							state.sendTerminated()
 							shouldDispose = true
 						} else {

				// End of the main protected section.
				signal.sendLock.unlock()

				// Is it terminating? (False positive is allowed.)
				if !shouldDispose, case .terminating = signal.status {
					signal.sendLock.lock()

					// Acquire `statusLock`, and handle the termination if the signal
					// is still at `terminating` state.
					signal.statusLock.lock()
					if case let .terminating(state) = signal.status {
						signal.status = .terminated
						signal.statusLock.unlock()
						state.sendTerminated()
						shouldDispose = true
					} else {

					signal.statusLock.unlock()

					if signal.sendLock.try() {
						// Acquire `statusLock`. If the termination has still not yet been
						// handled, take it over and bump the status to `terminated`.
						signal.statusLock.lock()

						if case let .terminating(state) = signal.status {
							signal.status = .terminated
							signal.statusLock.unlock()

							state.sendTerminated()
						} else {
							signal.statusLock.unlock()
						}

						signal.sendLock.unlock()
						signal.swapDisposable()?.dispose()
					}
