 	var rememberedSyncClippings:Bool = false
 
 	let pasteboardInteractionQueue = DispatchQueue(label: "com.Flycut.pasteboardInteractionQueue")
-	let alertHandlingQueue = DispatchQueue(label: "com.Flycut.alertHandlingQueue")
+	let alertHandlingSemaphore = DispatchSemaphore(value: 0)
 	let defaultsChangeHandlingQueue = DispatchQueue(label: "com.Flycut.defaultsChangeHandlingQueue")
 
 


			// topController should now be your topmost view controller

			// Transform the asynchronous UIAlertController into a synchronous alert by suspending a GCD serial queue before presenting then placing an empty sync on that queue to block until it is resumed, and resuming after selection.  The GCD sync can't complete until the selection resumes the queue.

			alertHandlingQueue.suspend()
			DispatchQueue.main.async {
				topController.present(alertController, animated: true)
			}
			alertHandlingQueue.sync { } // To wait for queue to resume.
		}

		return selection

		{
			alertController.addAction(UIAlertAction(title: option as? String, style: .default) { action in
				selection = action.title
				self.alertHandlingSemaphore.signal()
			})
		}

