internal void OnFullyEstablished(PhysicalConnection connection)
        {
            Trace("OnFullyEstablished");
            connection?.SetIdle();
            if (physical == connection && !isDisposed && ChangeState(State.ConnectedEstablishing, State.ConnectedEstablished))
            {
                reportNextFailure = reconfigureNextFailure = true;
                LastException     = null;
                Interlocked.Exchange(ref failConnectCount, 0);
                ServerEndPoint.OnFullyEstablished(connection);

                bool createWorker;
                lock (_backlog) // do we have pending system things to do?
                {
                    createWorker = _backlog.Count != 0;
                }
                if (createWorker)
                {
                    StartBacklogProcessor();
                }

                if (ConnectionType == ConnectionType.Interactive)
                {
                    ServerEndPoint.CheckInfoReplication();
                }
            }
            else
            {
                try { connection.Dispose(); } catch { }
            }
        }
 internal void OnFullyEstablished(PhysicalConnection connection)
 {
     Trace("OnFullyEstablished");
     if (physical == connection && !isDisposed && ChangeState(State.ConnectedEstablishing, State.ConnectedEstablished))
     {
         reportNextFailure = reconfigureNextFailure = true;
         Interlocked.Exchange(ref failConnectCount, 0);
         serverEndPoint.OnFullyEstablished(connection);
         multiplexer.RequestWrite(this, true);
     }
     else
     {
         try { connection.Dispose(); } catch { }
     }
 }
Пример #3
0
 internal async Task OnConnectedAsync(PhysicalConnection connection, TextWriter log)
 {
     Trace("OnConnected");
     if (physical == connection && !isDisposed && ChangeState(State.Connecting, State.ConnectedEstablishing))
     {
         await ServerEndPoint.OnEstablishingAsync(connection, log).ForAwait();
     }
     else
     {
         try
         {
             connection.Dispose();
         }
         catch { }
     }
 }
Пример #4
0
 internal void OnConnected(PhysicalConnection connection, TextWriter log)
 {
     Trace("OnConnected");
     if (physical == connection && !isDisposed && ChangeState(State.Connecting, State.ConnectedEstablishing))
     {
         ServerEndPoint.OnEstablishing(connection, log);
     }
     else
     {
         try
         {
             connection.Dispose();
         }
         catch
         { }
     }
 }
Пример #5
0
 internal void OnFullyEstablished(PhysicalConnection connection)
 {
     Trace("OnFullyEstablished");
     if (physical == connection && !isDisposed && ChangeState(State.ConnectedEstablishing, State.ConnectedEstablished))
     {
         reportNextFailure = reconfigureNextFailure = true;
         LastException     = null;
         Interlocked.Exchange(ref failConnectCount, 0);
         ServerEndPoint.OnFullyEstablished(connection);
         Multiplexer.RequestWrite(this, true);
         if (ConnectionType == ConnectionType.Interactive)
         {
             ServerEndPoint.CheckInfoReplication();
         }
     }
     else
     {
         try { connection.Dispose(); } catch { }
     }
 }
Пример #6
0
        internal void OnFullyEstablished(PhysicalConnection connection)
        {
            Trace("OnFullyEstablished");
            connection?.SetIdle();
            if (physical == connection && !isDisposed && ChangeState(State.ConnectedEstablishing, State.ConnectedEstablished))
            {
                reportNextFailure = reconfigureNextFailure = true;
                LastException     = null;
                Interlocked.Exchange(ref failConnectCount, 0);
                ServerEndPoint.OnFullyEstablished(connection);
#pragma warning disable CS0618
                WritePendingBacklogSync(connection);
#pragma warning restore CS0618

                if (ConnectionType == ConnectionType.Interactive)
                {
                    ServerEndPoint.CheckInfoReplication();
                }
            }
            else
            {
                try { connection.Dispose(); } catch { }
            }
        }
Пример #7
0
 internal void OnFullyEstablished(PhysicalConnection connection)
 {
     Trace("OnFullyEstablished");
     if (physical == connection && !isDisposed && ChangeState(State.ConnectedEstablishing, State.ConnectedEstablished))
     {
         reportNextFailure = reconfigureNextFailure = true;
         Interlocked.Exchange(ref failConnectCount, 0);
         serverEndPoint.OnFullyEstablished(connection);
         multiplexer.RequestWrite(this, true);
         if(connectionType == ConnectionType.Interactive) serverEndPoint.CheckInfoReplication();
     }
     else
     {
         try { connection.Dispose(); } catch { }
     }
 }
Пример #8
0
 internal void OnConnected(PhysicalConnection connection, TextWriter log)
 {
     Trace("OnConnected");
     if (physical == connection && !isDisposed && ChangeState(State.Connecting, State.ConnectedEstablishing))
     {
         serverEndPoint.OnEstablishing(connection, log);
     }
     else
     {
         try
         {
             connection.Dispose();
         }
         catch
         { }
     }
 }