Event Handles leak- April 28, 2008 On our stress run, we saw our process handle count steadily increases until certain point, then it stabilizes. However the number of handles is high. Most of those handles are Event handles. We are concerned about it. So we went off and did some investigation. Turns out the Event handles are coming from the use of Monitor. When there is contention on the lock object, CLR internally creates an Event handle, presumably to facilitate the thread scheduling. The event handle is not cleaned up...http://blogs.msdn.com/junfeng/archive/2008/04/28/event-handles-leak.aspx Consider Creating a new class for locking- April 14, 2008 C provides keyword lock for synchronized access. A good practice is to create a private object for locking purpose. For example, public class LockExample private object syncObject = new object(); public void SynchronizedMethod() lock (syncObject) It may make sense to create a class just for...http://blogs.msdn.com/junfeng/archive/2008/04/14/consider-creating-a-new-class-for-locking... A case study of a NullReferenceException- April 7, 2008 We are seeing a NullReferenceException in our stress program. The investigation process may be helpful to some folks. Thread 22 is showing a Watson dialog. This is a register corruption. 0:022> kp ChildEBP RetAddr 091bc9a0 76961220 ntdll!ZwWaitForSingleObject(void)+0x15 091bca10 76961188 kernel32!WaitForSingleObjectEx(void hHandle = 0x00001034, unsigned long dwMilliseconds = 0x4e20, int bAlertable = 0)+0xbe 091bca24 7bb1fca4...http://blogs.msdn.com/junfeng/archive/2008/04/07/a-case-study-of-a-nullreferenceexception.... |