It's a bug in gmcs.
However, using 'lock' and 'yield' together doesn't sound like a good
idea to me. The standard doesn't specify anything about releasing and
re-acquiring the lock around a yield[1]: so, the lock is very
long-lived.
I have filed a bug report.
From the Microsoft C# Programmers Reference:
Unsafe blocks are not allowed
My naive unterstanding of how yield works was that code until the loop is
executed (i.e. the lock is aquired), then the code inside the foreach (the
one that called the function containing yield) is called and finally the
code after my loop is called (i.e. the lock is released). In my real life
example I am iterating through nested Hashtables/Lists and call that from an
aspx page to generate HTML output. I thought I need to lock the object so
that the collections are not modified while I am iterating.
I wanted to avoid copying all the data, but maybe there is something that is
better suited for tasks like that.
Does that make any sense?
Thank you
Bernhard
_______________________________________________
Mono-list maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-list