1 2005-08-09 Gert Driesen <drieseng@users.sourceforge.net>
3 * EventLog.cs: Fixed Designer attribute to match MS.NET.
4 * ICollectData.cs: Added marshalling attribute to match MS.NET.
5 * PerformanceCounter.cs: Fixed Designer attribute to match MS.NET.
6 * Process.cs: Fixed Designer attribute to match MS.NET, modified
7 * ProcessModule.cs: Fixed Designer attribute to match MS.NET.
8 * ProcessThread.cs: Fixed Designer attribute to match MS.NET.
9 DesignerSerializationVisibility on StartInfo to match MS.NET, changed
10 Category attribute on Exited event to match MS.NET.
12 2005-06-09 Gert Driesen <drieseng@users.sourceforge.net>
14 * TraceImpl.cs: Adjust internal indentlevel and indentsize before
15 passing on to listeners. Fixes some test failures.
17 2005-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19 * DefaultTraceListener.cs: s/MONO_TRACE/MONO_TRACE_LISTENER/. The
20 runtime uses MONO_TRACE too...
22 2005-05-31 Sebastien Pouliot <sebastien@ximian.com>
24 * PerformanceCounterPermissionEntry.cs: Added more 2.0 validations for
25 machine names and PerformanceCounterPermissionAccess.
27 2005-02-22 Jonathan Pryor <jonpryor@vt.edu>
29 * TraceImpl.cs: More Thread-safety fixes. I have to lock on
30 Listeners.SyncRoot as we're traversing the collection and can't let the
31 collection change from underneath us while we're iterating over it
32 (alternately, we could clone the collection and iterate over the clone
33 without having locking issues -- assuming we had a lock-free clone --
34 but this would kill the GC). Fixes 69964. Only define lock_ if we're
35 using the lock-free initialization routine; it's not used otherwise.
37 2005-01-18 Jonathan Pryor <jonpryor@vt.edu>
39 * DiagnosticsConfigurationHandler.cs (DiagnosticsConfiguration):
40 Use a lock-free algorithm for creating the settings information.
41 * TraceImpl.cs (InitOnce): Use a lock-free algorithm for creating the
42 listeners collection and initializing the world.
44 2005-01-18 Jonathan Pryor <jonpryor@vt.edu>
46 * DiagnosticsConfigurationHandler.cs (DiagnosticsConfiguration): Don't
47 read the .config file from the static ctor (again), as if it fails we'll
48 get a TypeLoadException -- bad! Instead, lazy-read the .config file.
49 * DiagnosticsConfigurationHandler.cs (DiagnosticsConfigurationHandler):
50 Require that the /switch/add/@value attribute contains only numeric values.
51 * TraceImpl.cs: Don't initialize everything in the static ctor, as if it
52 fails (due to an invalid .confg file) we get a TypeLoadException, while
53 .NET generates a ConfigurationException. Instead, initialize everything
54 the first time the Listeners property is accessed, which allows the static
55 ctor to run without chance of failure, avoiding the TypeLoadException.
56 * TraceListenerCollection.cs: This should be thread-safe, as it's accessible
57 from a static member of TraceImpl (available through the public Debug and
59 * Switch.cs: Leave the original switch value alone. If it isn't valid
60 (i.e. numeric), the DiagnosticsConfigurationHandler will catch it.
62 2005-01-17 Jonathan Pryor <jonpryor@vt.edu>
64 * DiagnosticsConfigurationHandler.cs: The /switch/add/@value attribute
65 isn't optional under .NET 1.1, so make sure it exists.
67 2005-01-13 Jonathan Pryor <jonpryor@vt.edu>
69 * DiagnosticsConfigurationHandler.cs: Make DiagnosticsConfiguration.Settings
70 thread-safe (double-checked locking isn't thread safe on .NET without
71 using a volatile variable, and setting the variable in the static
72 constructor is easier anyway).
73 * Switch.cs (GetConfigFileSetting): If the setting is non-numeric, set the
74 attribute value to the string "0". This is apparently what .NET 1.1 does,
75 and allows the SwitchTest NUnit test to work w/o failures.
77 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
79 * Process.cs: always pass the same arguments to the runtime.
81 2004-09-11 Sebastien Pouliot <sebastien@ximian.com>
83 * EventLogPermission.cs: Completed implementation.
84 * EventLogPermissionAccess.cs: Fixed enum values.
85 * EventLogPermissionEntry.cs: Added validation for machine names.
86 * EventLogPermissionEntryCollection.cs: Added synchronization
87 of entries with the base permission class.
88 * PerformanceCounterPermission.cs: Completed implementation.
89 * PerformanceCounterPermissionAccess.cs: Fixed enum values.
90 * PerformanceCounterPermissionEntry.cs: Added validations for machine
92 * PerformanceCounterPermissionEntryCollection.cs: Added synchronization
93 of entries with the base permission class.
95 2004-09-10 Sebastien Pouliot <sebastien@ximian.com>
97 * EventLogPermission.cs: Fixed initialization (TagNames and
98 PermissionAccessType).
99 * EventLogPermissionAccess.cs: Added new enums for NET_2_0 and added
100 [Obsolete] to some existing elements.
101 * EventLogPermissionAttribute.cs: Added missing validation to property
102 MachineName. Fixed changes for NET_2_0.
103 * PerformanceCounterPermission.cs: Fixed initialization (TagNames and
104 PermissionAccessType).
105 * PerformanceCounterPermissionAccess.cs: Added new enums for NET_2_0
106 and added [Obsolete] to some existing elements.
107 * PerformanceCounterPermissionAttribute.cs: Added missing validations
108 to properties (Path, MachineName). Fixed changes for NET_2_0.
110 2004-09-07 Dick Porter <dick@ximian.com>
112 * Process.cs: Throw documented exceptions when getting stdin,
113 stdout or stderr and they haven't been redirected. Check that
114 CreatePipe didn't fail, throw exceptions if it did. Close
115 redirected streams when the process is disposed, rather than rely
116 on the GC disposing them later. Makes timeline much happier,
117 because it could run out of file descriptors between GC
120 2004-09-06 Dick Porter <dick@ximian.com>
122 * Process.cs: Make Dispose() actually dispose things.
124 2004-06-24 Atsushi Enomoto <atsushi@ximian.com>
126 * Process.cs : quick fix for UseShellExecute=false on windows. See
129 2004-06-17 Lluis Sanchez Gual <lluis@ximian.com>
131 * Process.cs: Added missing check in HasExited property.
133 2004-05-20 Gert Driesen (drieseng@users.sourceforge.net)
135 * EventLogPermissionAttribute.cs:
136 * PerformanceCounterPermissionAttribute.cs: adjust AllowMultiple
137 and Inherited to match .NET
139 2004-05-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
141 * Process.cs: separate the command and the arguments when calling
144 2004-05-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
146 * Process.cs: redirecting I/O is not permitted if UseShellExecute is
147 true. Also throw if FileName is null.
149 2004-04-06 Lluis Sanchez Gual <lluis@ximian.com>
151 * DiagnosticsConfigurationHandler.cs: If initializeData is provided,
152 use the constructor that only takes one string as parameter to
153 construct the listener. The name is set using the Name property, not the
156 * TextWriterTraceListener.cs: In Write*, do nothing if no writer was
159 2004-03-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
161 * Process.cs: use the ISynchronizeInvoke object to invoke the event.
162 Implemented Close, CloseMainWindow and Kill.
164 2004-03-23 Ben Maurer <bmaurer@users.sourceforge.net>
166 * Switch.cs: Don't throw when there is no switches section.
168 2004-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
170 * Process.cs: support EnableRaisingEvents + Exited event.
172 2004-03-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
174 * Process.cs: patch by Gert Driesen that fixes WaitForExit when the
175 timeout is int.MaxValue.
177 2004-03-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
179 * Process.cs: added environment variables setting support and also
180 send useShellExecute to the runtime.
182 * ProcessStartInfo.cs: support EnvironmentVariables. MS uses
183 StringDictionary, which turns keys into lowercase. We don't do that.
185 2004-02-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
187 * Process.cs: ExitCode and ExitTime check that the process is finished.
189 2003-12-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
191 * Process.cs: if there's an error when starting the process, the 'pid'
192 field contains the GetLastError code. Use that for the Win32Exception.
194 2003-12-06 Martin Baulig <martin@ximian.com>
196 * DefaultTraceListener: Don't use `where' in variable names.
198 2003-11-13 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
200 * ICollectData.cs: Fixed signature
202 2003-11-12 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
204 * ICollectData.cs: Added missing attribute
206 2003-07-27 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
208 * SRDescriptionAttribute.cs: Moved to System directory
210 2003-07-21 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
212 * EventLog.cs: Implementation handling
213 * EventLogImpl.cs: Added, contains an platform independent empty implementation
216 2003-07-18 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
218 * AlphabeticalEnumConverter.cs: Added
219 * EventLogEntry.cs: Implemented
220 * EventLogPermissionEntryCollection.cs: Fixed signature and implementation of indexer
221 * EventLogTraceListener.cs: Fixed signature
222 * PerformanceCounter.cs: Added missing attribute
223 * PerformanceCounterType.cs: Added missing attribute
224 * SRDescriptionAttribute.cs: Added and implemented
226 2003-07-17 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
228 * CounterCreationData.cs:
231 * PerformanceCounter.cs:
234 * ProcessStartInfo.cs:
235 * ProcessThread.cs: Reworked attributes based on the new Consts scheme
237 2003-07-14 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
239 * PerformanceCounterCategory.cs: Fixed signatures
241 2003-07-13 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
243 * PerformanceCounter.cs: Implemented or implementation added
245 2003-07-13 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
247 * DiagnosticsConfigurationHandler.cs: Removed a never used variable
248 * EventLog.cs: Small update to prevent a warning
249 * EventLogPermission.cs: Implemented or implementation added
250 * EventLogPermissionAttribute.cs: Implemented or implementation added
251 * EventLogPermissionEntry.cs: Implemented or implementation added
252 * EventLogPermissionEntryCollection.cs: Implemented or implementation added
253 * EventLogTraceListener.cs: Implemented or implementation added
254 * PerformanceCounterManager.cs: Implemented or implementation added
255 * PerformanceCounterInstaller.cs: Made internal
256 * PerformanceCounterCategory.cs: Implemented few members
257 * PerformanceCounterPermission.cs: Implemented or implementation added
258 * PerformanceCounterPermissionAttribute.cs: Implemented or implementation added
259 * PerformanceCounterPermissionEntry.cs: Implemented or implementation added
260 * PerformanceCounterPermissionEntryCollection.cs: Implemented or implementation added
262 2003-07-07 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
264 * EventLog.cs: Removed unneccesary attribute according to corecompare
265 * EventLogEntry.cs: Removed unneccesary attribute according to corecompare
266 * Process.cs: Removed unneccesary attributes according to corecompare, added attribute
267 * ProcessModule.cs: Removed unneccesary attribute according to corecompare
268 * ProcessStartInfo.cs: Removed unneccesary attribute according to corecompare
269 * ProcessThread.cs: Removed unneccesary attribute according to corecompare, fixed signature
271 2003-07-05 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
273 * InstanceDataCollectionCollection.cs: Corrected wrong signature
274 * EventLog.cs: Missing attributes added, redirected some class members
275 * EventLogEntry.cs: Missing attributes added
276 * EventLogInstaller.cs: Made internal
278 2003-07-02 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
280 * CounterCreationData.cs: Added missing attributes
281 * CounterSample.cs: Implemented missing rest, fixed signature
282 * CounterSampleCalculator.cs: Added private constructor, redirected function
283 * Process.cs: Added attributes, added event mechanism
284 * ProcessModule.cs: Added missing attributes
285 * ProcessModuleCollection.cs: Redone using the already inherited-from ArrayList. Simplifies this a LOT
286 * ProcessStartInfo.cs: Added missing attributes, moved internal fields to the begining of the file, restyling
287 * ProcessThread.cs: Added missing attributes, added pseudo constructor
288 * ProcessThreadCollection.cs: Implemented
289 * PerformanceCounterPermission.cs: Fixed typo in class name
290 * PerformanceCounterPermissionAccess.cs: Added attributes, fixed wrong member
292 2003-03-19 Dick Porter <dick@ximian.com>
294 * Process.cs: Implement HasExited, fixes bug 39267
296 2003-03-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
298 * Process.cs: throw an exception when the executable cannot be found.
300 2002-12-20 Jonathan Pryor <jonpryor@vt.edu>
301 * DiagnosticsConfigurationHandler.cs:
302 - Don't assume that optional attributes are always present
303 - <assert/> can't have any child nodes
304 - Change in semantics: if the attribute isn't present,
305 GetAttribute() returns null, not "". This allows us to
306 differentiate between an attribute not being present and an
307 attribute with an empty value.
308 - Translate exceptions if a TraceListener type is invalid
310 2002-12-19 Jonathan Pryor <jonpryor@vt.edu>
311 * TraceListenerCollection.cs: IndentLevel and IndentSize shouldn't be
312 hardcoded; they should be set to whatever TraceImpl is using (which
313 in turn may have been set by the .config file, so we should get the
314 user-specified values in added listeners).
315 * TraceListener.cs: Make sure that indents are initially written. This
316 allows code that uses Trace.Indent() before a Trace.WriteLine() to be
318 * TraceImpl.cs: provide a static constructor to explicitly specify the
319 ordering of initialization, in particular the ordering of
320 TraceImpl.Listeners and the reading of the .config file (by
321 accessing DiagnosticsConfiguration.Settings). This (hopefully)
322 ensures that the Listeners collection is initialized before the
323 .config file is read in, as the DiagnosticsConfigurationHandler will
324 directly modify the listeners collection.
325 The DiagnosticsConfigurationHandler assumes this so that it can
326 <add/> and <remove/> trace listeners and set the logfile for the
327 DefaultTraceListener.
330 2002-12-18 Jonathan Pryor <jonpryor@vt.edu>
331 * BooleanSwitch.cs: Complete re-write. It works now.
332 * DefaultTraceListener.cs:
333 - Use `const' strings, so I don't worry about copy/paste errors
334 - Give `AssertUiEnabled' an actual backing member
335 * DiagnosticsConfigurationHandler.cs: To avoid race conditions, let the
336 configuration handler set .config-specified properties on
337 DefaultTraceListener (AssertUiEnabled, LogFileName) and TraceImpl
338 (AutoFlush, IndentSize).
339 * Switch.cs: Near complete re-write. Actually works, and is (should be)
340 comformant with .NET behavior. Changed member names because they
341 were confusing me. (Yes, that doesn't say much about my memory.)
342 * TextWriterTraceListener.cs: Append text to already existing files,
343 don't overwrite them.
345 - Added private destructor, to ensure no instances are created.
346 - Move members declarations to be closer to each other.
347 * TraceSwitch.cs: Complete re-write. It works now.
349 2002-12-17 Jonathan Pryor <jonpryor@vt.edu>
350 * DiagnosticsConfigurationHandler.cs: Implement so that .config files
351 support <system.diagnostics> sections.
353 2002-12-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
355 * DefaultTraceListener.cs: now OutputDebugStringW is called from an
356 internal call (update your runtime!). No more warnings in linux.
358 2002-10-31 Dick Porter <dick@ximian.com>
360 * Process.cs: MonoIO methods now have an error parameter
362 2002-10-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
364 * DefaultTraceListener.cs: changed OutputDebugString to
365 OutputDebugStringW (no more warnings under windows). Also a few style
368 2002-10-23 Dick Porter <dick@ximian.com>
370 * Process.cs: Redirected standard input needs to have AutoFlush set
372 2002-09-27 Dick Porter <dick@ximian.com>
374 * Process.cs: Implemented {get_,set_}{Min,Max}WorkingSet,
375 ProcessName, GetProcessById, GetProcesses, GetProcessesByName.
376 Pass the working directory to Start. Pass the program and args in
377 one string to be used with the second arg of CreateProcess, so it
378 will search the path.
380 2002-09-19 Nick Drochak <ndrochak@gol.com>
382 * TraceImpl.cs: Remove debug prints
384 2002-09-19 Nick Drochak <ndrochak@gol.com>
386 * TraceListenerCollection.cs: Set Indet level and size to default
387 values. The values from TraceImpl might have been changed.
389 2002-08-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
392 * TextWriterTraceListener.cs: IDisposable fixes.
394 2002-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
396 * Process.cs: class status based fixes.
398 2002-07-20 Dick Porter <dick@ximian.com>
400 * Process.cs: Implement file handle redirection
402 2002-07-13 Jonathan Pryor <jonpryor@vt.edu>
403 * CounterCreationData.cs: Implemented
404 * CounterCreationDataCollection.cs: Implemented
405 * CounterSample.cs: Stubbed Out
406 * CounterSampleCalculator.cs: Stubbed Out
407 * InstanceData.cs: Implemented
408 * InstanceDataCollection.cs: Implemented
409 * InstanceDataCollectionCollection.cs: Implemented
410 * MonitoringDescriptionAttribute.cs: Implemented
411 * PerformanceCounter.cs: Stubbed Out
412 * PerformanceCounterCategory.cs: Stubbed Out
413 * PerformanceCounterInstaller.cs: Stubbed Out
414 * PerformanceCounterManager.cs: Stubbed Out
415 * PerformanceCounterPermission.cs: Stubbed Out
416 * PerformanceCounterPermissionAccess.cs: Implemented
417 * PerformanceCounterPermissionAttribute.cs: Stubbed Out
418 * PerformanceCounterPermissionEntry.cs: Stubbed Out
419 * PerformanceCounterPermissionEntryCollection.cs: Implemented
420 * PerformanceCounterType.cs: Implemented
423 2002-06-25 Dick Porter <dick@ximian.com>
425 * Process.cs: Process forking and waiting, and some support functions
427 * ProcessStartInfo.cs: Implemented the bits needed for basic
430 * ProcessModule.cs: Implemented
432 * ProcessModuleCollection.cs: Mostly implemented
434 * FileVersionInfo.cs: Implemented
436 2002-06-16 Jonathan Pryor <jonpryor@vt.edu>
437 * ICollectData.cs: Implemented
438 * TraceImpl.cs: Setting IndentLevel, IndentSize should change the
439 corresponding properties on all current TraceListeners.
440 Also, to answer the FIXME message: Yes, the properties in TraceListener
441 need to be [ThreadStatic] as well.
442 * TraceListenerCollection.cs: When adding a TraceListener, the TraceListener
443 should have its properties set to the current TraceImpl property values.
444 * TraceListener.cs: Make indentSize, lndentLevel [ThreadStatic].
446 2002-06-09 Jonathan Pryor <jonpryor@vt.edu>
447 * EntryWrittenEventArgs.cs: Implemented
448 * EntryWrittenEventHandler.cs: Implemented
449 * EventLog.cs: Stubbed out
450 * EventLogEntry.cs: Stubbed out
451 * EventLogEntryCOllection.cs: Implemented.
452 * EventLogEntryType.cs: Implemented
453 * EventLogInstaller.cs: Stubbed out
454 * EventLogPermission.cs: Stubbed out
455 * EventLogPermissionAccess.cs: Implemented
456 * EventLogPermissionAttribute.cs: Stubbed out
457 * EventLogPermissionEntry.cs: Stubbed out
458 * EventLogPermissionEntryCollection.cs: Stubbed out
459 * EventLogTraceListener.cs: Stubbed out
461 2002-05-29 Jonathan Pryor <jonpryor@vt.edu>
462 * DefaultTraceListener.cs: Implemented MONO_TRACE support
464 2002-05-27 Jonathan Pryor <jonpryor@vt.edu>
465 * Moved public API documentation for the following files to the
466 /mcs/docs/apidocs/xml/en/System.Diagnostics directory:
468 - DefaultTraceListener.cs
469 - DiagnosticsConfigurationHandler.cs
471 - TextWriterTraceListener.cs
475 - TraceListenerCollection.cs
478 2002-04-10 Jonathan Pryor <jonpryor@vt.edu>
480 * TraceListenerCollection.cs: Corrected indexer property to provide the
481 correct return value and implement the IList indexer property correctly.
483 2002-04-07 Jonathan Pryor <jonpryor@vt.edu>
485 * TraceListener.cs: Fix stack overflow bug
486 * DefaultTraceListener.cs: Implement log file support
488 2002-04-04 Dick Porter <dick@ximian.com>
490 * ThreadWaitReason.cs:
492 * ThreadPriorityLevel.cs:
493 * ProcessWindowStyle.cs:
494 * ProcessThreadCollection.cs
496 * ProcessStartInfo.cs:
497 * ProcessModuleCollection.cs: Stub out more classes needed for Process
499 2002-03-31 Dick Porter <dick@ximian.com>
502 * ProcessPriorityClass.cs:
504 * FileVersionInfo.cs: Stub out classes needed for Process
506 2002-03-08 Jonathan Pryor <jonpryor@vt.edu>
508 * Debug.cs: Clean up (lots of code can be shared with Trace.cs, which
509 is why TraceImpl.cs is introduced), "DEBUG" conditional support
510 * TraceListener.cs: Proper implementation of Dispose pattern;
511 implementatino of non-abstract methods in terms of abstract methods
512 * TraceListenerCollection.cs: check 'object' types before adding
513 * TextWriterTraceListener.cs: properly implement Dispose pattern;
514 handle NeedIndent and WriteIndent
515 * Trace.cs: new file; provides Trace functionality, "TRACE" conditional
517 * DefaultTraceListener.cs: new file; the default trace listener
519 2002-01-17 Miguel de Icaza <miguel@ximian.com>
520 * TraceListenerCollection.cs: Remove Warnings.
522 2002-01-06 Ravi Pratap <ravi@ximian.com>
523 * Switch.cs, TraceListenerCollection.cs : Decorate incomplete bits
524 with the MonoTODO attribute.
526 2002-01-04 John R. Hicks <angryjohn69@nc.rr.com>
527 * Added Debug.cs to the build.
529 2002-01-04 John R. Hicks <angryjohn69@nc.rr.com>
530 * Added preliminary TraceListenerCollection.cs to the build.
532 2002-01-04 John R. Hicks <angryjohn69@nc.rr.com>
533 * Added TraceListener.cs, TextWriterTraceListener.cs, and
534 DefaultTraceListener.cs to the build and moved them into the
537 2002-01-04 John R. Hicks <angryjohn69@nc.rr.com>
538 * Added DiagnosticsConfigurationHandler.cs to the build.
540 2001-09-09 Nick Drochak <ndrochak@gol.com>
541 * BooleanSwitch.cs: Make this class use it's parent class's features. Namely, use SwitchSetting
542 so that we can get OnSwitchSettingChanged() to fire for free.
544 2001-09-09 Nick Drochak <ndrochak@gol.com>
545 * ChangeLog: added this file
546 * Switch.cs: call OnSwitchSettingChanged() when the switch setting is, yes you gessed it, changed.