statusicon: add lock. attempt to fix #1130
This commit is contained in:
parent
4be9ebe895
commit
72beb68a4c
|
@ -262,7 +262,7 @@ namespace SparkleShare {
|
||||||
|
|
||||||
new Thread (() => {
|
new Thread (() => {
|
||||||
string keys_path = Path.GetDirectoryName (SparkleConfig.DefaultConfig.FullPath);
|
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);
|
string [] key_pair = SparkleKeys.GenerateKeyPair (keys_path, key_file_name);
|
||||||
SparkleKeys.ImportPrivateKey (key_pair [0]);
|
SparkleKeys.ImportPrivateKey (key_pair [0]);
|
||||||
|
|
|
@ -248,39 +248,43 @@ namespace SparkleShare {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private Object folders_lock = new Object ();
|
||||||
|
|
||||||
private void UpdateFolders ()
|
private void UpdateFolders ()
|
||||||
{
|
{
|
||||||
List<string> folders = new List<string> ();
|
lock (this.folders_lock) {
|
||||||
List<string> folder_errors = new List<string> ();
|
List<string> folders = new List<string> ();
|
||||||
|
List<string> folder_errors = new List<string> ();
|
||||||
|
|
||||||
foreach (SparkleRepoBase repo in Program.Controller.Repositories) {
|
foreach (SparkleRepoBase repo in Program.Controller.Repositories) {
|
||||||
folders.Add (repo.Name);
|
folders.Add (repo.Name);
|
||||||
|
|
||||||
if (repo.Error == ErrorStatus.HostUnreachable) {
|
if (repo.Error == ErrorStatus.HostUnreachable) {
|
||||||
folder_errors.Add ("Can't reach the host");
|
folder_errors.Add ("Can't reach the host");
|
||||||
|
|
||||||
} else if (repo.Error == ErrorStatus.HostIdentityChanged) {
|
} else if (repo.Error == ErrorStatus.HostIdentityChanged) {
|
||||||
folder_errors.Add ("The host's identity has changed");
|
folder_errors.Add ("The host's identity has changed");
|
||||||
|
|
||||||
} else if (repo.Error == ErrorStatus.AuthenticationFailed) {
|
} else if (repo.Error == ErrorStatus.AuthenticationFailed) {
|
||||||
folder_errors.Add ("Authentication failed");
|
folder_errors.Add ("Authentication failed");
|
||||||
|
|
||||||
} else if (repo.Error == ErrorStatus.DiskSpaceExceeded) {
|
} else if (repo.Error == ErrorStatus.DiskSpaceExceeded) {
|
||||||
folder_errors.Add ("Host is out of disk space");
|
folder_errors.Add ("Host is out of disk space");
|
||||||
|
|
||||||
} else if (repo.Error == ErrorStatus.LockedFiles) {
|
} else if (repo.Error == ErrorStatus.LockedFiles) {
|
||||||
folder_errors.Add ("Some local files are locked or in use");
|
folder_errors.Add ("Some local files are locked or in use");
|
||||||
|
|
||||||
} else if (repo.Error == ErrorStatus.NotFound) {
|
} else if (repo.Error == ErrorStatus.NotFound) {
|
||||||
folder_errors.Add ("Project doesn't exist on host");
|
folder_errors.Add ("Project doesn't exist on host");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
folder_errors.Add ("");
|
folder_errors.Add ("");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
Folders = folders.ToArray ();
|
Folders = folders.ToArray ();
|
||||||
FolderErrors = folder_errors.ToArray ();
|
FolderErrors = folder_errors.ToArray ();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue