internal static void registerChannel( Interp interp, Channel chan ) { if ( interp != null ) { Hashtable chanTable = getInterpChanTable( interp ); SupportClass.PutElement( chanTable, chan.ChanName, chan ); chan.refCount++; } }
internal static void unregisterChannel( Interp interp, Channel chan ) { Hashtable chanTable = getInterpChanTable( interp ); SupportClass.HashtableRemove( chanTable, chan.ChanName ); if ( --chan.refCount <= 0 ) { try { chan.close(); } catch ( IOException e ) { throw new TclRuntimeError( "TclIO.unregisterChannel() Error: IOException when closing " + chan.ChanName + ": " + e.Message, e ); } } }
private void put(Channel channel, string s) // The String to print. { try { channel.write(interp, s); channel.flush(interp); } catch (System.IO.IOException ex) { System.Console.Error.WriteLine("IOException in Shell.put()"); SupportClass.WriteStackTrace(ex, System.Console.Error); } catch (TclException ex) { System.Console.Error.WriteLine("TclException in Shell.put()"); SupportClass.WriteStackTrace(ex, System.Console.Error); } }
internal ConsoleThread(Interp i) { Name = "ConsoleThread"; interp = i; sbuf = new System.Text.StringBuilder(100); out_Renamed = TclIO.getStdChannel(StdChannel.STDOUT); err = TclIO.getStdChannel(StdChannel.STDERR); }