Author: gschneider Date: Tue Jul 28 01:58:40 2009 New Revision: 42261
URL: http://svn.reactos.org/svn/reactos?rev=42261&view=rev Log: RosDbg: - Handle thread abortions gradually, avoid calling Thread.abort() - Fixes a crash that happened when closing connection to a pipe server waiting for connections - Fix typo
Modified: trunk/tools/reactosdbg/Pipe/namedpipe.cs trunk/tools/reactosdbg/RosDBG/MainWindow.cs trunk/tools/reactosdbg/RosDBG/Properties/AssemblyInfo.cs
Modified: trunk/tools/reactosdbg/Pipe/namedpipe.cs URL: http://svn.reactos.org/svn/reactos/trunk/tools/reactosdbg/Pipe/namedpipe.cs?... ============================================================================== --- trunk/tools/reactosdbg/Pipe/namedpipe.cs [iso-8859-1] (original) +++ trunk/tools/reactosdbg/Pipe/namedpipe.cs [iso-8859-1] Tue Jul 28 01:58:40 2009 @@ -25,6 +25,7 @@ private List<String> cmdList; /*list of commands pending to be written */ private bool bClientConn; private Thread waitThread; + private NamedPipeServerStream sStream;
public event EventHandler ClientConnectedEvent; public event EventHandler ClientDisconnectedEvent; @@ -43,34 +44,39 @@ cmdList = new List<string>(); }
- private void WaitForConnection(object data) - { - NamedPipeServerStream pipeStream = (NamedPipeServerStream)data; - - pipeStream.WaitForConnection(); - - if (pipeStream.IsConnected) - { - ioStream = pipeStream; - bClientConn = true; - - if (ClientConnectedEvent != null) - { - ClientConnectedEvent(this, EventArgs.Empty); - } + private void WaitForConnection() + { + try + { + sStream.WaitForConnection(); + + if (sStream.IsConnected) + { + ioStream = sStream; + bClientConn = true; + + if (ClientConnectedEvent != null) + { + ClientConnectedEvent(this, EventArgs.Empty); + } + } + } + catch (IOException) + { + /* Pipe got killed externally */ } }
public void CreateServerPipe(string name) { /* create a pipe and wait for a client */ - NamedPipeServerStream sStream = new NamedPipeServerStream(name, PipeDirection.InOut, 1, + sStream = new NamedPipeServerStream(name, PipeDirection.InOut, 1, PipeTransmissionMode.Byte, PipeOptions.Asynchronous, PIPE_SIZE, PIPE_SIZE);
waitThread = new Thread(WaitForConnection); - waitThread.Start(sStream); - } - + waitThread.Start(); + } + public bool CreateClientPipe(string name) { /* try to connect as a client */ @@ -136,7 +142,9 @@ newWriteData.Set();
if (waitThread != null) - waitThread.Abort(); + { + sStream.Close(); + } }
public void WriteLoop()
Modified: trunk/tools/reactosdbg/RosDBG/MainWindow.cs URL: http://svn.reactos.org/svn/reactos/trunk/tools/reactosdbg/RosDBG/MainWindow.... ============================================================================== --- trunk/tools/reactosdbg/RosDBG/MainWindow.cs [iso-8859-1] (original) +++ trunk/tools/reactosdbg/RosDBG/MainWindow.cs [iso-8859-1] Tue Jul 28 01:58:40 2009 @@ -315,7 +315,7 @@ mConnection.StartTCP(newConnection.Host, newConnection.Port); break; } - connectToolStripMenuItem.Text = "&Disconect"; + connectToolStripMenuItem.Text = "&Disconnect"; } } else @@ -461,7 +461,7 @@ { Process.Start(((ToolStripMenuItem)sender).Name); } - catch (Exception ex) + catch (Exception) {
}
Modified: trunk/tools/reactosdbg/RosDBG/Properties/AssemblyInfo.cs URL: http://svn.reactos.org/svn/reactos/trunk/tools/reactosdbg/RosDBG/Properties/... ============================================================================== --- trunk/tools/reactosdbg/RosDBG/Properties/AssemblyInfo.cs [iso-8859-1] (original) +++ trunk/tools/reactosdbg/RosDBG/Properties/AssemblyInfo.cs [iso-8859-1] Tue Jul 28 01:58:40 2009 @@ -39,5 +39,5 @@ // will be increased as well. MSI installers must not be generated with the same Build Number // otherwise they won't upgrade the old installation!
-[assembly: AssemblyVersion("1.0.2.64")] -[assembly: AssemblyFileVersion("1.0.2.64")] +[assembly: AssemblyVersion("1.0.2.65")] +[assembly: AssemblyFileVersion("1.0.2.65")]