Talk:CoroutineScheduler

= RemoveCoroutine = You have some redundancy in your RemoveCoroutine function. If you're not the head of the list (you are not the first) there have to be a previous node. Also if you're the first node you have to check if there's a successor and you have to set it to null as well. Otherwise it will exist until the list is empty.

So it could be simplified to:

if (first == coroutine) { // remove first first = coroutine.listNext; } else { // we have a predecessor coroutine.listPrevious.listNext = coroutine.listNext; } if (coroutine.listNext != null) { // we have a successor coroutine.listNext.listPrevious = coroutine.listPrevious; }

However, really nice example, i think that will help beginners a lot. Too bad you can't upvote in the wiki ;) --Bunny83 18:40, 17 April 2011 (PDT)