[Issue 4890] GC.collect() deadlocks multithreaded program.

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sat Feb 8 14:05:43 PST 2014


https://d.puremagic.com/issues/show_bug.cgi?id=4890


Stanislav Blinov <stanislav.blinov at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |stanislav.blinov at gmail.com
           Platform|x86                         |x86_64


--- Comment #7 from Stanislav Blinov <stanislav.blinov at gmail.com> 2014-02-08 14:05:36 PST ---
A quick search lead me to this issue. It would appear the deadlock still
occurs.
I've been encountering it now and then, first when running singleton tests from
http://forum.dlang.org/thread/mailman.158.1391156715.13884.digitalmars-d@puremagic.com,
then when running druntime unittests (more specifically, test/shared/host)
while working on providing shared qualifiers for core.sync primitives.

At first I though it had to do with my changes to druntime, but after testing
on a clean druntime I encoutered it as well. 

The deadlock doesn't happen on every run though, so may be tricky to track
down.
It's in this piece of test/shared/src/plugin.d:

23      launchThread();
24      GC.collect();
25      joinThread();

GC.collect() simply doesn't return. I haven't investigated deeper yet. Maybe it
has something to do with GC trying to pause/resume an exiting/finished thread?
This is on 64-bit Linux.

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list