- Changed Native.get() to cache integration instances.

- Extracted DefaultSystemInfo out of a couple of separate places.
This commit is contained in:
Adam Murdoch
2012-09-08 10:11:25 +10:00
parent ab1487d215
commit f6ea1d8e33
10 changed files with 90 additions and 33 deletions

View File

@@ -4,11 +4,12 @@ import net.rubygrapefruit.platform.Terminal;
import net.rubygrapefruit.platform.Terminals;
public abstract class AbstractTerminals implements Terminals {
private static Output currentlyOpen;
private static AbstractTerminal current;
private final Object lock = new Object();
private Output currentlyOpen;
private AbstractTerminal current;
public Terminal getTerminal(Output output) {
synchronized (AbstractTerminals.class) {
synchronized (lock) {
if (currentlyOpen != null && currentlyOpen != output) {
throw new UnsupportedOperationException("Currently only one output can be used as a terminal.");
}