Weak pointers, garbage collection & deadlocks

2 Jun
2001
2 Jun
'01
3:33 a.m.
While using weak pointers and concurrency together, I became convinced that before issuing the ``no threads to run: infinite loop or deadlock?'' error message, the RTS should perform a GC. The reason is that the GC may run some finalisers, which in turn may unlock some threads. The concrete scenario that I have is that I use a finaliser to close a stream when the handle that provides input to that stream dies. Now if the only other thread is a consumer of that stream that waits for it to close, then this thread can't run before the next GC is performed and runs the finaliser. Opinions? Cheers, Manuel
8754
Age (days ago)
8754
Last active (days ago)
0 comments
1 participants
participants (1)
-
Manuel M. T. Chakravarty