it was on <a href="http://MS.NET">MS.NET</a> 3.5<div><br></div><div><div>now the problem was the following<br></div><div><br></div><div>the problematic object encapsulated a running timer. on each tick of the timer, I added an occurrence to a stream</div>
<div><br></div><div>this stream was used in another thread, but the stream itself had no backpointer to the object that generated it</div><div><br></div><div>so the object that encapsulated the running timer got collected since no pointer existed to it... and no occurrences in the stream got generated anymore.</div>
<div><br></div><div>If the GC would consider timers as roots, then this would not be a problem I guess.&nbsp;</div><div><br></div><div>Do you think this is something to report as a bug to Microsoft?&nbsp;</div><div><br></div><div>But this is a bit off topic in Haskell Cafe :-)</div>
<div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br><br><div class="gmail_quote">On Thu, Feb 12, 2009 at 11:52 AM, Felipe Lessa <span dir="ltr">&lt;<a href="mailto:felipe.lessa@gmail.com">felipe.lessa@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">2009/2/12 Peter Verswyvelen &lt;<a href="mailto:bugfact@gmail.com">bugfact@gmail.com</a>&gt;:<br>
<div class="Ih2E3d">&gt; It is funny that recently I had a strange problem in C# (I tried to write<br>
&gt; parts of Reactive in C#) where the garbage collector freed data that was<br>
&gt; actually needed by my program! I had to fix that by putting a local variable<br>
&gt; on the stack, passing the constructed data to a function did not work. I<br>
&gt; think .NET and Java the garbage collector traverses from data (the stack,<br>
&gt; globals, etc). If I understood Simon correctly, GHC traverse the code blocks<br>
&gt; instead, which feels correct as it would have fixed the bug I had in C#. So<br>
&gt; yet again an extreme difference between Haskell and .NET/Java even when it<br>
&gt; comes to garbage collection, Haskell wins :)<br>
<br>
</div>I&#39;m curious, a GC that removes live data is a buggy GC. What was<br>
holding the pointer to the data, if it was not the stack? Were you<br>
with MS .NET or with Mono?<br>
<br>
--<br>
<font color="#888888">Felipe.<br>
</font></blockquote></div><br></div></div>