nemo r79 - trunk/common
- From: arj svn gnome org
- To: svn-commits-list gnome org
- Subject: nemo r79 - trunk/common
- Date: Thu, 7 Feb 2008 14:03:26 +0000 (GMT)
Author: arj
Date: Thu Feb 7 14:03:26 2008
New Revision: 79
URL: http://svn.gnome.org/viewvc/nemo?rev=79&view=rev
Log:
Much nicer way of doing a mainloop FIFO
Modified:
trunk/common/Common.cs
Modified: trunk/common/Common.cs
==============================================================================
--- trunk/common/Common.cs (original)
+++ trunk/common/Common.cs Thu Feb 7 14:03:26 2008
@@ -78,18 +78,15 @@
// allows any number of callers to use this abstraction by identifying themselves by name
public static void RunOnlyOnceInMainLIFO(string name, VoidFunction func, uint timeout /* ms */)
{
- int last_id = 0;
- if (!main_last_id.ContainsKey(name))
- main_last_id.Add(name, 0);
+ if (!main_timeout_id.ContainsKey(name))
+ main_timeout_id.Add(name, GLib.Timeout.Add(timeout, delegate { main_timeout_id.Remove(name); func(); return false; } ));
else {
- last_id = ++main_last_id[name];
- main_last_id[name] = last_id;
- }
-
- GLib.Timeout.Add(timeout, delegate { if (main_last_id[name] == last_id) func(); return false; } );
+ GLib.Source.Remove(main_timeout_id[name]);
+ main_timeout_id[name] = GLib.Timeout.Add(timeout, delegate { main_timeout_id.Remove(name); func(); return false; } );
+ }
}
- static Dictionary<string, int> main_last_id = new Dictionary<string,int>();
+ static Dictionary<string, uint> main_timeout_id = new Dictionary<string,uint>();
public static Type load<Type>(string filename)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]