public static <T> T runNow(Supplier<T> s) {
		AtomicReference<T> ref = new AtomicReference<>();
		runNow(() -> ref.set(s.get()));
		return ref.get();
	}
Calls the given suppler on the Swing thread, blocking with a
{@link SwingUtilities#invokeAndWait(Runnable)} if not on the Swing thread.  

<p>Use this method when you are not on the Swing thread and you need to get a value 
that is managed/synchronized by the Swing thread.

<pre>{@literal
		String value = runNow(() -> label.getText());
}</pre>

@param s the supplier that will be called on the Swing thread
@return the result of the supplier
@see #runNow(Runnable)
Ghidra/Framework/Utility/src/main/java/ghidra/util/Swing.java