[ui] Fix Quit method

This commit is contained in:
Hylke Bons 2010-09-12 18:46:00 +01:00
parent 592adadd5d
commit 1609b309e6
3 changed files with 18 additions and 9 deletions

View file

@ -26,6 +26,7 @@ namespace SparkleLib {
{
public IrcClient Client;
public Thread Thread;
public string Server;
public string Channel;
public string Nick;
@ -61,7 +62,7 @@ namespace SparkleLib {
try {
Thread thread = new Thread (
Thread = new Thread (
new ThreadStart (delegate {
// Connect to the server
@ -80,7 +81,7 @@ namespace SparkleLib {
})
);
thread.Start ();
Thread.Start ();
} catch (Exception e) {

View file

@ -35,6 +35,7 @@ namespace SparkleLib {
private DateTime LastChange;
private System.Object ChangeLock;
private int FetchRequests;
private SparkleListener Listener;
public string Name;
public string RemoteName;
@ -139,10 +140,10 @@ namespace SparkleLib {
};
// Listen to the irc channel on the server
SparkleListener listener = new SparkleListener (Domain, "#" + RemoteName, UserEmail);
Listener = new SparkleListener (Domain, "#" + RemoteName, UserEmail);
// Stop polling when the connection to the irc channel is succesful
listener.Client.OnConnected += delegate {
Listener.Client.OnConnected += delegate {
SparkleHelpers.DebugInfo ("Irc", "[" + Name + "] Connected. Now listening...");
@ -152,7 +153,7 @@ namespace SparkleLib {
};
// Start polling when the connection to the irc channel is lost
listener.Client.OnDisconnected += delegate {
Listener.Client.OnDisconnected += delegate {
SparkleHelpers.DebugInfo ("Irc", "[" + Name + "] Lost connection. Falling back to polling...");
@ -162,7 +163,7 @@ namespace SparkleLib {
};
// Fetch changes when there is a message in the irc channel
listener.Client.OnChannelMessage += delegate (object o, IrcEventArgs args) {
Listener.Client.OnChannelMessage += delegate (object o, IrcEventArgs args) {
SparkleHelpers.DebugInfo ("Irc", "[" + Name + "] Was notified of a remote change.");
@ -193,7 +194,7 @@ namespace SparkleLib {
};
// Start listening
listener.Listen ();
Listener.Listen ();
// Keep a timer that checks if there are changes and
@ -617,8 +618,11 @@ namespace SparkleLib {
public void Stop ()
{
RemoteTimer.Stop ();
LocalTimer.Stop ();
RemoteTimer.Dispose ();
LocalTimer.Dispose ();
Listener.Thread.Abort ();
Listener.Thread.Join ();
}

View file

@ -456,6 +456,10 @@ namespace SparkleShare {
private void Quit (object o, EventArgs args)
{
foreach (SparkleRepo repo in SparkleUI.Repositories)
repo.Stop ();
// Remove the process id file
File.Delete (SparkleHelpers.CombineMore (SparklePaths.SparkleTmpPath, "sparkleshare.pid"));
Application.Quit ();