Esempio n. 1
0
        public static bool Remove(TimeoutHandler hndlr)
        {
            bool      result = false;
            ArrayList keys   = new ArrayList();

            lock (Source.source_handlers) {
                foreach (uint code in Source.source_handlers.Keys)
                {
                    TimeoutProxy p = Source.source_handlers [code] as TimeoutProxy;

                    if (p != null && p.real_handler == hndlr)
                    {
                        keys.Add(code);
                        result = g_source_remove_by_funcs_user_data(p.proxy_handler, IntPtr.Zero);
                    }
                }

                foreach (object key in keys)
                {
                    Source.source_handlers.Remove(key);
                }
            }

            return(result);
        }
Esempio n. 2
0
        public static bool Remove(TimeoutHandler hndlr)
        {
            bool        result = false;
            List <uint> keys   = new List <uint> ();

            lock (Source.source_handlers) {
                foreach (uint code in Source.source_handlers.Keys)
                {
                    TimeoutProxy p = Source.source_handlers [code] as TimeoutProxy;

                    if (p != null && p.real_handler == hndlr)
                    {
                        keys.Add(code);
                        result = g_source_remove(code);
                    }
                }

                foreach (object key in keys)
                {
                    Source.source_handlers.Remove(key);
                }
            }

            return(result);
        }
Esempio n. 3
0
        public static uint AddSeconds(uint interval, TimeoutHandler hndlr)
        {
            TimeoutProxy p = new TimeoutProxy(hndlr);

            p.ID = g_timeout_add_seconds(interval, (TimeoutHandlerInternal)p.proxy_handler, IntPtr.Zero);
            Source.AddSourceHandler(p.ID, p);

            return(p.ID);
        }
Esempio n. 4
0
        public static uint Add(uint interval, TimeoutHandler hndlr)
        {
            TimeoutProxy p = new TimeoutProxy(hndlr);

            p.ID = g_timeout_add(interval, p.Handler, IntPtr.Zero);
            Source.Add(p);

            return(p.ID);
        }
Esempio n. 5
0
		public static uint Add (uint interval, TimeoutHandler hndlr, Priority priority)
		{
			TimeoutProxy p = new TimeoutProxy (hndlr);

			p.ID = g_timeout_add_full ((int)priority, interval, (TimeoutHandlerInternal) p.proxy_handler, IntPtr.Zero, null);
			Source.AddSourceHandler (p.ID, p);

			return p.ID;
		}
Esempio n. 6
0
        public static uint Add(uint interval, TimeoutHandler hndlr, Priority priority)
        {
            TimeoutProxy p = new TimeoutProxy(hndlr);

            p.ID = g_timeout_add_full((int)priority, interval, (TimeoutHandlerInternal)p.proxy_handler, IntPtr.Zero, null);
            Source.AddSourceHandler(p.ID, p);

            return(p.ID);
        }
Esempio n. 7
0
		public static uint Add (uint interval, TimeoutHandler hndlr)
		{
			TimeoutProxy p = new TimeoutProxy (hndlr);

			p.ID = g_timeout_add (interval, (TimeoutHandlerInternal) p.proxy_handler, IntPtr.Zero);
			Source.AddSourceHandler (p.ID, p);

			return p.ID;
		}
Esempio n. 8
0
        public static uint AddSeconds(uint interval, TimeoutHandler hndlr)
        {
            TimeoutProxy p = new TimeoutProxy (hndlr);

            p.ID = g_timeout_add_seconds (interval, (TimeoutHandlerInternal) p.proxy_handler, IntPtr.Zero);
            lock (Source.source_handlers)
                Source.source_handlers [p.ID] = p;

            return p.ID;
        }
Esempio n. 9
0
        public static uint Add(uint interval, TimeoutHandler hndlr, Priority priority)
        {
            TimeoutProxy p = new TimeoutProxy (hndlr);

            p.ID = g_timeout_add_full ((int)priority, interval, (TimeoutHandlerInternal) p.proxy_handler, IntPtr.Zero, null);
            lock (Source.source_handlers)
                Source.source_handlers [p.ID] = p;

            return p.ID;
        }
Esempio n. 10
0
        public static uint Add(uint interval, TimeoutHandler hndlr)
        {
            TimeoutProxy p = new TimeoutProxy(hndlr);

            p.ID = g_timeout_add(interval, (TimeoutHandlerInternal)p.proxy_handler, IntPtr.Zero);
            lock (Source.source_handlers)
                Source.source_handlers [p.ID] = p;

            return(p.ID);
        }
Esempio n. 11
0
        public static uint Add(uint interval, TimeoutHandler handler)
        {
            var proxy = new TimeoutProxy (handler);
            uint code = clutter_threads_add_timeout (interval, (TimeoutHandlerInternal)proxy.proxy_handler, IntPtr.Zero);

            lock (Source.source_handlers) {
                Source.source_handlers[code] = proxy;
            }

            return code;
        }
Esempio n. 12
0
        public static uint Add(uint interval, TimeoutHandler handler)
        {
            var  proxy = new TimeoutProxy(handler);
            uint code  = clutter_threads_add_timeout(interval, (TimeoutHandlerInternal)proxy.proxy_handler, IntPtr.Zero);

            lock (Source.source_handlers) {
                Source.source_handlers[code] = proxy;
            }

            return(code);
        }
Esempio n. 13
0
        public static uint Add(uint interval, TimeoutHandler hndlr, Priority priority)
        {
            TimeoutProxy p = new TimeoutProxy(hndlr);

            lock (p)
            {
                var gch      = GCHandle.Alloc(p);
                var userData = GCHandle.ToIntPtr(gch);
                p.ID = g_timeout_add_full((int)priority, interval, (TimeoutHandlerInternal)p.proxy_handler, IntPtr.Zero, null);
            }

            return(p.ID);
        }
Esempio n. 14
0
        public static uint Add(uint interval, TimeoutHandler hndlr)
        {
            TimeoutProxy p = new TimeoutProxy(hndlr);

            lock (p)
            {
                var gch      = GCHandle.Alloc(p);
                var userData = GCHandle.ToIntPtr(gch);
                p.ID = g_timeout_add_full(0, interval, (TimeoutHandlerInternal)p.proxy_handler, userData, DestroyHelper.NotifyHandler);
            }

            return(p.ID);
        }
Esempio n. 15
0
            public override void Send(SendOrPostCallback d, object state)
            {
                if (Runtime.IsMainThread)
                {
                    d(state);
                    return;
                }

                using (var ob = new ManualResetEventSlim(false)) {
                    var proxy = new TimeoutProxy(d, state, ob);

                    AddTimeout(proxy);
                    ob.Wait();
                }
            }
Esempio n. 16
0
            static void AddTimeout(TimeoutProxy proxy)
            {
                if (proxy.d == null)
                {
                    // Create an exception without throwing it, as throwing is expensive and these exceptions can be
                    // hit a lot of times.

                    const string exceptionMessage = "Unexpected null delegate sent to synchronization context";
                    LoggingService.LogInternalError(exceptionMessage,
                                                    new ExceptionWithStackTraceWithoutThrowing(exceptionMessage));

                    // Return here without queueing the UI operation. Async calls which await on the given callback
                    // will continue immediately, but at least we won't crash.
                    // Having a null continuation won't do anything anyway.
                    return;
                }

                var gch = GCHandle.Alloc(proxy);

                g_timeout_add_full(defaultPriority, 0, TimeoutProxy.SourceHandler, (IntPtr)gch, GLib.DestroyHelper.NotifyHandler);
            }
Esempio n. 17
0
            public override void Post(SendOrPostCallback d, object state)
            {
                var proxy = new TimeoutProxy(d, state);

                AddTimeout(proxy);
            }
Esempio n. 18
0
        static void AddTimeout(TimeoutProxy proxy)
        {
            var gch = GCHandle.Alloc(proxy);

            g_timeout_add_full(defaultPriority, 0, TimeoutProxy.SourceHandler, (IntPtr)gch, GLib.DestroyHelper.NotifyHandler);
        }