[runtime] Fix list removal in eaf200b37bd8ba29d59fc7054f8409e9b76b5697.
authorZoltan Varga <vargaz@gmail.com>
Wed, 25 Mar 2015 05:07:07 +0000 (01:07 -0400)
committerZoltan Varga <vargaz@gmail.com>
Wed, 25 Mar 2015 05:07:13 +0000 (01:07 -0400)
mono/io-layer/processes.c

index 5b25291a444b578b7cd44ab1e0ff1f66f711d7be..502a200274f48a9b34c776ab9b67d8630501f7df 100644 (file)
@@ -2473,19 +2473,17 @@ mono_processes_cleanup (void)
                         * This code can run parallel with the sigchld handler, but the
                         * modifications it makes are safe.
                         */
-                       if (mp == mono_processes) {
+                       if (mp == mono_processes)
                                mono_processes = mp->next;
-                       } else {
-                               if (mp == mono_processes) {
-                                       mono_processes = mp->next;
-                               } else {
-                                       prev->next = mp->next;
-                               }
-                       }
+                       else
+                               prev->next = mp->next;
                        finished = g_slist_prepend (finished, mp);
+
+                       mp = mp->next;
+               } else {
+                       prev = mp;
+                       mp = mp->next;
                }
-               prev = mp;
-               mp = mp->next;
        }
 
        mono_memory_barrier ();