示例#1
0
        public override void Close()
        {
            base.Close();
            if (Handle != IntPtr.Zero)
            {
                PauseReading();
                PauseWriting();

                readWatcher.Dispose();
                writeWatcher.Dispose();

                if (readTimeoutWatcher != null)
                {
                    readTimeoutWatcher.Dispose();
                }
                if (writeTimeoutWatcher != null)
                {
                    writeTimeoutWatcher.Dispose();
                }

                readWatcher         = null;
                writeWatcher        = null;
                readTimeoutWatcher  = null;
                writeTimeoutWatcher = null;

                Handle = IntPtr.Zero;
            }
        }
示例#2
0
        public virtual void Close()
        {
            if (handle == IntPtr.Zero)
            {
                return;
            }

            DisableReading();
            DisableWriting();

            read_watcher.Dispose();
            write_watcher.Dispose();
            timeout_watcher.Dispose();

            handle = IntPtr.Zero;

            foreach (IWriteOperation op in write_ops)
            {
                op.Dispose();
            }

            if (Closed != null)
            {
                Closed(this, EventArgs.Empty);
            }
        }
示例#3
0
        public virtual void Close()
        {
            if (handle == IntPtr.Zero)
            {
                return;
            }

            DisableReading();
            DisableWriting();

            read_watcher.Dispose();
            write_watcher.Dispose();
            timeout_watcher.Dispose();

            read_watcher    = null;
            write_watcher   = null;
            timeout_watcher = null;
            handle          = IntPtr.Zero;

            foreach (IWriteOperation op in write_ops)
            {
                op.Dispose();
            }
            write_ops.Clear();

            if (Closed != null)
            {
                Closed(this, EventArgs.Empty);
            }
            Closed        = null;
            read_callback = null;

            GC.SuppressFinalize(this);
        }
示例#4
0
        protected override void Dispose(bool disposing)
        {
            if (Handle != IntPtr.Zero)
            {
                PauseReading();
                PauseWriting();

                readWatcher.Dispose();
                writeWatcher.Dispose();

                if (readTimeoutWatcher != null)
                {
                    readTimeoutWatcher.Dispose();
                }
                if (writeTimeoutWatcher != null)
                {
                    writeTimeoutWatcher.Dispose();
                }

                readWatcher         = null;
                writeWatcher        = null;
                readTimeoutWatcher  = null;
                writeTimeoutWatcher = null;

                Handle = IntPtr.Zero;
            }
            base.Dispose(disposing);
        }
示例#5
0
        private void HandleTimeout(Loop loop, TimerWatcher timeout, EventTypes revents)
        {
            Timeout t = (Timeout)timeout.UserData;

            AppHost.RunTimeout(t);
            if (!t.ShouldContinueToRepeat())
            {
                timeout.Stop();
                timeout.Dispose();
            }
        }