Hi,

The following code doesn't get garbage collected
right with the mono runtime (current anoncvs).

Output from mono:

>New Test1: 1
>New Test1: 2
>New Test1: 3
>New Test1: 4
>DisposeNative: 4
>New Test1: 5


Output from windows:

>New Test1: 1
>New Test1: 2
>New Test1: 3
>New Test1: 4
>DisposeNative: 4
>New Test1: 5
>DisposeNative: 5
>DisposeNative: 1
>DisposeNative: 3
>DisposeNative: 2


Regards

Fredrik Nilsson





using System;
using System.Collections;

namespace SharpTest {
        public class Test1 : IDisposable {
                static ArrayList _objects = new ArrayList ();
                int number;
                bool disposed = false;
                
                public Test1 (int nr) {
                        _objects.Add (this);
                        Console.WriteLine ("New Test1: " + nr);
                        number = nr;
                }
                
                ~Test1() {
                        Dispose ();
                }
                
                public void Dispose () {
                        if (disposed)
                                return;
                        
                        DisposeNative ();
                        disposed = true;
                }
                
                protected virtual void DisposeNative () {
                        _objects.Remove (this);
                        Console.WriteLine ("DisposeNative: " + number);
                        GC.SuppressFinalize (this);
                }
        }
        
        public class Test {
                public static int Main (string[] args) {
                        Test1 a = new Test1 (1);
                        Test1 b = new Test1 (2);
                        Test1 c = new Test1 (3);
                        Test1 d = new Test1 (4);
                        d.Dispose ();
                        Test1 e = new Test1 (5);

                        return 0;
                }
        }
}



_______________________________________________
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list

Reply via email to