statusicon: add lock. attempt to fix #1130

This commit is contained in:
Hylke Bons 2013-01-05 16:28:24 +01:00
parent 4be9ebe895
commit 72beb68a4c
2 changed files with 31 additions and 27 deletions

View file

@ -262,7 +262,7 @@ namespace SparkleShare {
new Thread (() => {
string keys_path = Path.GetDirectoryName (SparkleConfig.DefaultConfig.FullPath);
string key_file_name = DateTime.Now.ToString ("yyyy-MM-dd_HH\\hmm"); // TODO: move to undercore name for old keys
string key_file_name = DateTime.Now.ToString ("yyyy-MM-dd_HH\\hmm");
string [] key_pair = SparkleKeys.GenerateKeyPair (keys_path, key_file_name);
SparkleKeys.ImportPrivateKey (key_pair [0]);

View file

@ -248,39 +248,43 @@ namespace SparkleShare {
}
private Object folders_lock = new Object ();
private void UpdateFolders ()
{
List<string> folders = new List<string> ();
List<string> folder_errors = new List<string> ();
lock (this.folders_lock) {
List<string> folders = new List<string> ();
List<string> folder_errors = new List<string> ();
foreach (SparkleRepoBase repo in Program.Controller.Repositories) {
folders.Add (repo.Name);
if (repo.Error == ErrorStatus.HostUnreachable) {
folder_errors.Add ("Can't reach the host");
foreach (SparkleRepoBase repo in Program.Controller.Repositories) {
folders.Add (repo.Name);
} else if (repo.Error == ErrorStatus.HostIdentityChanged) {
folder_errors.Add ("The host's identity has changed");
} else if (repo.Error == ErrorStatus.AuthenticationFailed) {
folder_errors.Add ("Authentication failed");
} else if (repo.Error == ErrorStatus.DiskSpaceExceeded) {
folder_errors.Add ("Host is out of disk space");
} else if (repo.Error == ErrorStatus.LockedFiles) {
folder_errors.Add ("Some local files are locked or in use");
if (repo.Error == ErrorStatus.HostUnreachable) {
folder_errors.Add ("Can't reach the host");
} else if (repo.Error == ErrorStatus.HostIdentityChanged) {
folder_errors.Add ("The host's identity has changed");
} else if (repo.Error == ErrorStatus.AuthenticationFailed) {
folder_errors.Add ("Authentication failed");
} else if (repo.Error == ErrorStatus.DiskSpaceExceeded) {
folder_errors.Add ("Host is out of disk space");
} else if (repo.Error == ErrorStatus.LockedFiles) {
folder_errors.Add ("Some local files are locked or in use");
} else if (repo.Error == ErrorStatus.NotFound) {
folder_errors.Add ("Project doesn't exist on host");
} else {
folder_errors.Add ("");
} else if (repo.Error == ErrorStatus.NotFound) {
folder_errors.Add ("Project doesn't exist on host");
} else {
folder_errors.Add ("");
}
}
}
Folders = folders.ToArray ();
FolderErrors = folder_errors.ToArray ();
Folders = folders.ToArray ();
FolderErrors = folder_errors.ToArray ();
}
}
}
}