Fixes xambug#2965: enqueue the correct worker instance (change from Tammo Hinrichs).
authorPaolo Molaro <lupus@oddwiz.org>
Thu, 2 Aug 2012 16:10:23 +0000 (18:10 +0200)
committerPaolo Molaro <lupus@oddwiz.org>
Thu, 2 Aug 2012 16:10:23 +0000 (18:10 +0200)
mcs/class/System/System.Net.Sockets/Socket.cs

index 291f9ab852615d9ed854fc6d928dc523270e6a59..763bc3462f422e907943bb3439a3aa1fb0478b2c 100644 (file)
@@ -1617,10 +1617,9 @@ namespace System.Net.Sockets
                        res.Size = e.Count;
                        res.EndPoint = e.RemoteEndPoint;
                        res.SockFlags = e.SocketFlags;
-                       Worker worker = new Worker (e);
                        int count;
                        lock (readQ) {
-                               readQ.Enqueue (worker);
+                               readQ.Enqueue (e.Worker);
                                count = readQ.Count;
                        }
                        if (count == 1)
@@ -1938,10 +1937,9 @@ namespace System.Net.Sockets
                        res.Size = e.Count;
                        res.SockFlags = e.SocketFlags;
                        res.EndPoint = e.RemoteEndPoint;
-                       Worker worker = new Worker (e);
                        int count;
                        lock (writeQ) {
-                               writeQ.Enqueue (worker);
+                               writeQ.Enqueue (e.Worker);
                                count = writeQ.Count;
                        }
                        if (count == 1)