[Mono-list] Requesting Assistance

deepak pn deepakpnrvce@yahoo.co.in
Wed, 17 Mar 2004 16:10:23 +0000 (GMT)


--0-1229597909-1079539823=:85938
Content-Type: multipart/alternative; boundary="0-332237292-1079539823=:85938"

--0-332237292-1079539823=:85938
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit


Hi,

            I am a new bee in “Contributing to the class library”.

            

            I have written test cases for about 8-10 classes and hence familiar with almost all classes in “System.Threading” namespace.

            

            I am very much interested to complete *ALL* the TODOs in this namespace.  

            

            I have a few problems:

 

            1). The following code snippet appears in “Thread.cs”:

                        [MethodImplAttribute(MethodImplOptions.InternalCall)]

                        private extern static Thread CurrentThread_internal();

                        

            I found from MSDN that the attribute “methodImplAttribute” is used here to specify that the method is defined else where and that the “InternalCall” refers to those methods implemented *WITHIN* the CLR.

            *WHERE* exactly are the definition of such methods found and *HOW* do I know all such methods.

 

            2). I have implemented two TODOs.  I do not know whether they are fine.

                        a).  TODO1 :The false return value of Change() method of “Timer.cs”.

                        b). TODO2 : The Dispose( bool ).

 

            3). What is the exact functionality of the WaitHandle() Constructor.

 

Can you please help me?

 

 

            Some of the test cases, which work perfectly on Windows/MS.NET, are not working as expected on Linux/Mono.  The details are:

 

                        1) AutoResetEventTest.cs

                                    

                                    a) TestAREConstructor() - Test does not succeed.

                                        TestReset() - Hangs mono

                                     I guess Abort() on a thread is not working as expected.

                                    

                                    b) None of the overloaded TestWaitAny() succeed.

                                    

                                    c) AutoResetEvent.WaitAll() and AutoResetEvent.WaitAny() do not throw the expected DuplicateWaitObjectException when the argument array has duplicate objects.

            

                        2) Timeout Class is OK.

                        

                        3) TimerTest.cs

                                    a) TestArgumentNullException() - timer( null, X, X, X ) should cause an ArgumentNullException - but no exception is thrown.

                                    b) TestObjectDisposedException() - when timer refers to null, calling timer.Change should cause ObjectDisposedException, but NullReferenceException is thrown.

                                    c) TestNullReferenceException() - calling timer.Dispose( myEvent ) when myEvent refers to null causes no exception, but NullReferenceException is expected.

 

                        4) InterlockedTest.cs

a)       TestDecrement () – Hangs mono.

 

 

Can I post these to bugzilla?

 

P.S: Timer.cs attached

P.S: Test cases attached.

 

Best regards,

Deepak.

            



Yahoo! India Promos:  Win a trip for 2 to Britain. Click here.
--0-332237292-1079539823=:85938
Content-Type: text/html; charset=iso-8859-1
Content-Transfer-Encoding: 8bit

<DIV>
<DIV>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face="Times New Roman" size=3>Hi,</FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>I am a new bee in “Contributing to the class library”.</FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-tab-count: 1"><FONT face="Times New Roman" size=3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>I have written test cases for about 8-10 classes and hence familiar with almost all classes in “System.Threading” namespace.</FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-tab-count: 1"><FONT face="Times New Roman" size=3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>I am very much interested to complete *ALL* the TODOs in this namespace.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-tab-count: 1"><FONT face="Times New Roman" size=3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>I have a few problems:</FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman">&nbsp;<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>1). The following code snippet appears in “Thread.cs”:</FONT></FONT></P>
<P class=MsoPlainText style="MARGIN: 0in 0in 0pt"><FONT face="Courier New"><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-fareast-font-family: 'MS Mincho'"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>[MethodImplAttribute(MethodImplOptions.InternalCall)]<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-fareast-font-family: 'MS Mincho'"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>private extern static Thread CurrentThread_internal();<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-fareast-font-family: 'MS Mincho'"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-fareast-font-family: 'MS Mincho'"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>I found from MSDN that the attribute “methodImplAttribute” is used here to specify that the method is defined else where and that the “InternalCall” refers to those methods implemented *WITHIN* the CLR.<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-fareast-font-family: 'MS Mincho'"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>*WHERE* exactly are the definition of such methods found and *HOW* do I know all such methods.<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-fareast-font-family: 'MS Mincho'"><FONT size=3><FONT face="Times New Roman">&nbsp;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-fareast-font-family: 'MS Mincho'"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>2). I have implemented two TODOs.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I do not know whether they are fine.<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-fareast-font-family: 'MS Mincho'"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>a).<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>TODO1 :The false return value of Change() method of “Timer.cs”.<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-fareast-font-family: 'MS Mincho'"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>b). TODO2 : The Dispose( bool ).<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-fareast-font-family: 'MS Mincho'"><FONT size=3><FONT face="Times New Roman">&nbsp;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-fareast-font-family: 'MS Mincho'"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>3). What is the exact functionality of the WaitHandle() Constructor.<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-fareast-font-family: 'MS Mincho'"><FONT size=3><FONT face="Times New Roman">&nbsp;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-fareast-font-family: 'MS Mincho'"><FONT size=3><FONT face="Times New Roman">Can you please help me?<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-fareast-font-family: 'MS Mincho'"><FONT size=3><FONT face="Times New Roman">&nbsp;<o:p></o:p></FONT></FONT></SPAN></P><SPAN style="mso-fareast-font-family: 'MS Mincho'"><FONT size=3><FONT face="Times New Roman">
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-FAMILY: Arial; mso-bidi-font-family: 'Times New Roman'"><FONT size=2>&nbsp;<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-FAMILY: Arial; mso-bidi-font-family: 'Times New Roman'"><FONT size=2><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Some of the test cases, which work perfectly on Windows/MS.NET, are not working as expected on Linux/Mono.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The details are:<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-FAMILY: Arial; mso-bidi-font-family: 'Times New Roman'"><FONT size=2>&nbsp;<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-FAMILY: Arial; mso-bidi-font-family: 'Times New Roman'"><FONT size=2><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>1) AutoResetEventTest.cs<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-FAMILY: Arial; mso-bidi-font-family: 'Times New Roman'"><FONT size=2><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-FAMILY: Arial; mso-bidi-font-family: 'Times New Roman'"><FONT size=2><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>a) TestAREConstructor() - Test does not succeed.<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-FAMILY: Arial; mso-bidi-font-family: 'Times New Roman'"><FONT size=2><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>TestReset() - Hangs mono<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-FAMILY: Arial; mso-bidi-font-family: 'Times New Roman'"><FONT size=2><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>I guess Abort() on a thread is not working as expected.<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-FAMILY: Arial; mso-bidi-font-family: 'Times New Roman'"><FONT size=2><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-FAMILY: Arial; mso-bidi-font-family: 'Times New Roman'"><FONT size=2><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>b) None of the overloaded TestWaitAny() succeed.<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-FAMILY: Arial; mso-bidi-font-family: 'Times New Roman'"><FONT size=2><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-FAMILY: Arial; mso-bidi-font-family: 'Times New Roman'"><FONT size=2><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>c) AutoResetEvent.WaitAll() and AutoResetEvent.WaitAny() do not throw the expected DuplicateWaitObjectException when the argument array has duplicate objects.<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-FAMILY: Arial; mso-bidi-font-family: 'Times New Roman'"><FONT size=2><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-FAMILY: Arial; mso-bidi-font-family: 'Times New Roman'"><FONT size=2><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>2) Timeout Class is OK.<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-FAMILY: Arial; mso-bidi-font-family: 'Times New Roman'"><FONT size=2><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-FAMILY: Arial; mso-bidi-font-family: 'Times New Roman'"><FONT size=2><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>3) TimerTest.cs<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-FAMILY: Arial; mso-bidi-font-family: 'Times New Roman'"><FONT size=2><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>a) TestArgumentNullException() - timer( null, X, X, X ) should cause an ArgumentNullException - but no exception is thrown.<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-FAMILY: Arial; mso-bidi-font-family: 'Times New Roman'"><FONT size=2><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>b) TestObjectDisposedException() - when timer refers to null, calling timer.Change should cause ObjectDisposedException, but NullReferenceException is thrown.<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-FAMILY: Arial; mso-bidi-font-family: 'Times New Roman'"><FONT size=2><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>c) TestNullReferenceException() - calling timer.Dispose( myEvent ) when myEvent refers to null causes no exception, but NullReferenceException is expected.<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-FAMILY: Arial; mso-bidi-font-family: 'Times New Roman'"><FONT size=2>&nbsp;<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-FAMILY: Arial; mso-bidi-font-family: 'Times New Roman'"><FONT size=2><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>4) InterlockedTest.cs<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 1.75in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list 1.75in"><SPAN style="FONT-FAMILY: Arial; mso-bidi-font-family: 'Times New Roman'"><FONT size=2>a)</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN style="FONT-FAMILY: Arial; mso-bidi-font-family: 'Times New Roman'"><FONT size=2>TestDecrement () – Hangs mono.<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-FAMILY: Arial; mso-bidi-font-family: 'Times New Roman'"><FONT size=2>&nbsp;<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"><SPAN style="FONT-FAMILY: Arial; mso-bidi-font-family: 'Times New Roman'"><FONT size=2>&nbsp;<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA">Can I post these to bugzilla?</SPAN></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-fareast-font-family: 'MS Mincho'"><FONT face="Times New Roman" size=3></FONT></SPAN>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-fareast-font-family: 'MS Mincho'"><FONT face="Times New Roman" size=3>P.S: Timer.cs attached</FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-fareast-font-family: 'MS Mincho'"><FONT face="Times New Roman" size=3>P.S: Test cases attached.</FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-fareast-font-family: 'MS Mincho'"><FONT face="Times New Roman" size=3></FONT></SPAN>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-fareast-font-family: 'MS Mincho'"><FONT size=3><FONT face="Times New Roman">Best regards,<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-fareast-font-family: 'MS Mincho'"><FONT size=3><FONT face="Times New Roman">Deepak.<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-fareast-font-family: 'MS Mincho'"><SPAN style="mso-tab-count: 1"><FONT face="Times New Roman" size=3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT></SPAN></SPAN></P></DIV></DIV><p><img src="http://in.yimg.com/i/in/specials/inpromotionslogo.jpg" width=28 height=22 border=0 
alt="Yahoo! India Promotions"></a>
<font face=arial size=-1>
<a href="http://in.rd.yahoo.com/specials/mailtg/*http://in.promos.yahoo.com" target="_blank"><b>Yahoo! India Promos</b>:</a>  Win a trip for 2 to Britain. 
<a href="http://in.rd.yahoo.com/specials/mailtg2/*http://in.promos.yahoo.com/bbcworld" target="_blank">Click here</a>.</font>
--0-332237292-1079539823=:85938--
--0-1229597909-1079539823=:85938
Content-Type: application/octet-stream; name="threading.rar"
Content-Transfer-Encoding: base64
Content-Description: threading.rar
Content-Disposition: attachment; filename="threading.rar"

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
je+Hk9/U73vQhMkprQg1M57XD2XEtR3+pRvRr6114z/sh3JQWy+Ji0/Co3Z+
1czaKaV6FFt4DFccH1BmcpHo9u5zT7+/DzeqtfDBT2QmcIZSRI7F6PiTLUPT
VRlk4k7ryappLAV2H1kz8sQNG6zSzpVt4qXJ8Q4gWcynz9jopUNooHpaFjsG
8zWRwyArolbNe4QaQSxas2sqk/XFckCS18ui51Ex3nVqdJOnOm8uNnfL6bly
t3uqPz7/lc7e0jq4MQWc4QtV8wSOCBVZlMM4dNJzwY3x0aELMD7Ji8uON2Yz
3XhTaMrUPZbtAHkUDMLFy1fCuS5yxkp+dBPMu6DSppl/SZU1uOxOTca5HUmx
0bPp8Dv05weNNYTmxPHo+tmp5vumR2Ixc1UA7Jh7eJttpxPvZ9fU8W/317R1
iIsEysZJt04fhg3t3cVDki/cf2Sn2IG8ScU6GgBMPh3dw+v5QDECdCCAMgCc
BQAAph4AAALEksr7rYNoLh0zEgAgAAAASW50ZXJsb2NrZWRUZXN0LmNzDAFM
zM0TzUFX2uAZ8Osm+MgsrsjluXKJt0bMtmbkA225ssuZ4TaKHW1LHtcbmtuX
Mg0Z/voCl6Y1IUk25G445Jejyo0bMbSPSjzhLLd+XKJR6eHpHAESySA0wTxL
j8tnZFWZdG2w0r1DWsDcdSVcFsC4uVld0Ru8W+o53wrTTeWkiVYws57fY983
/i4BjuqdQvo9cU1Y/X3TfYFLn7tvLXtWrii7BWGrk6FfTd+dlKp9LvDf9ecX
Z6UP5L5FDuD+5eeqnBr8l/EiO5G7krFssyiwaAbHcsgv3CsKjFwtMtG4I4lH
SHi/8h261kyF8l/w7ew1zB33b3Qwuqjj0eTQgiTWBY1nitr9amG3jFhDWX7A
8rirWK1T+ef693y1RbwqFMyObZeQwLei79OTYmPXh+NWvz8fy57Hzr1anByA
r7sRKqXnWq+IkbtXrGClZ5lSuMdGOvqP3uHSrPJh7lu8xup/hfW0usL+MK1w
53fmzjbJ+C60VcB2Mj+8ZyWZCFean26Aik08brn5cH+frmpYa2vriO9H3/jP
WyCvzSTwVy08nwgpyHb+fb7H/w4cIDnM5MbUrMqtjuGZ7K5VsgWP6NNMCUKs
Dg6cgMeajL0y2Nr2r4aRa7WM8AtH+Lo1XQPM8Ny8w7CvLpdosAiqYprgPJ76
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
J7J1KmiA5VUpkomqEc0lLIHx+6DEPXsAQAcA

--0-1229597909-1079539823=:85938--