diff options
| author | Keith Packard <keithp@keithp.com> | 2012-09-12 16:06:59 -0700 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2012-09-12 16:06:59 -0700 | 
| commit | 19e35de47157923670b1864ce7b04f8d82f3bdea (patch) | |
| tree | 27688fe43bb34edc8f8c05053a9cbfc88b6f9fed /altosui/AltosUIPreferences.java | |
| parent | 1b5340c2b75c500011355c4889da443c4b9c4891 (diff) | |
altosui: Lock access to preferences data
These are accessed by several different threads, so keep things sane
by just holding locks across all access.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altosui/AltosUIPreferences.java')
| -rw-r--r-- | altosui/AltosUIPreferences.java | 22 | 
1 files changed, 14 insertions, 8 deletions
| diff --git a/altosui/AltosUIPreferences.java b/altosui/AltosUIPreferences.java index 10ab26c3..8f1e45d9 100644 --- a/altosui/AltosUIPreferences.java +++ b/altosui/AltosUIPreferences.java @@ -102,15 +102,17 @@ public class AltosUIPreferences extends AltosPreferences {  		}  	}  	public static int font_size() { -		return font_size; +		synchronized (preferences) { +			return font_size; +		}  	}  	static void set_fonts() {  	}  	public static void set_font_size(int new_font_size) { -		font_size = new_font_size;  		synchronized (preferences) { +			font_size = new_font_size;  			preferences.putInt(fontSizePreference, font_size);  			flush_preferences();  			Altos.set_fonts(font_size); @@ -132,12 +134,12 @@ public class AltosUIPreferences extends AltosPreferences {  	}  	public static void set_look_and_feel(String new_look_and_feel) { -		look_and_feel = new_look_and_feel;  		try { -			UIManager.setLookAndFeel(look_and_feel); +			UIManager.setLookAndFeel(new_look_and_feel);  		} catch (Exception e) {  		}  		synchronized(preferences) { +			look_and_feel = new_look_and_feel;  			preferences.put(lookAndFeelPreference, look_and_feel);  			flush_preferences();  			for (AltosUIListener l : ui_listeners) @@ -146,7 +148,9 @@ public class AltosUIPreferences extends AltosPreferences {  	}  	public static String look_and_feel() { -		return look_and_feel; +		synchronized (preferences) { +			return look_and_feel; +		}  	}  	public static void register_ui_listener(AltosUIListener l) { @@ -161,16 +165,18 @@ public class AltosUIPreferences extends AltosPreferences {  		}  	}  	public static void set_serial_debug(boolean new_serial_debug) { -		serial_debug = new_serial_debug; -		AltosLink.set_debug(serial_debug); +		AltosLink.set_debug(new_serial_debug);  		synchronized (preferences) { +			serial_debug = new_serial_debug;  			preferences.putBoolean(serialDebugPreference, serial_debug);  			flush_preferences();  		}  	}  	public static boolean serial_debug() { -		return serial_debug; +		synchronized (preferences) { +			return serial_debug; +		}  	}  }
\ No newline at end of file | 
