Thread overview
[Issue 9606] New: `std.signal` implementation is fundamentally incorrect
Feb 27, 2013
Denis Shelomovskij
Feb 27, 2013
Denis Shelomovskij
Feb 27, 2013
Denis Shelomovskij
Mar 16, 2013
Denis Shelomovskij
February 27, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9606

           Summary: `std.signal` implementation is fundamentally incorrect
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Keywords: wrong-code
          Severity: critical
          Priority: P2
         Component: Phobos
        AssignedTo: nobody@puremagic.com
        ReportedBy: verylonglogin.reg@gmail.com


--- Comment #0 from Denis Shelomovskij <verylonglogin.reg@gmail.com> 2013-02-27 15:02:34 MSK ---
`std.signal` implementation is written like it is called from a single thread or explicitly synchronized. The reality is on objects collecting GC calls dispose events of finalizing object from its thread. So `unhook` can be called in a middle of `emit`, `connect`, or `disconnect` freezed in other thread.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
February 27, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9606



--- Comment #1 from Denis Shelomovskij <verylonglogin.reg@gmail.com> 2013-02-27 15:03:21 MSK ---
As we can't lock GC (at least in `emit`) some sort of lock-free programming
should be used here.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
February 27, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9606



--- Comment #2 from Denis Shelomovskij <verylonglogin.reg@gmail.com> 2013-02-27 17:03:54 MSK ---
A think-less fix just to prevent nasty random failures: https://github.com/D-Programming-Language/phobos/pull/1179

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
March 16, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9606


Denis Shelomovskij <verylonglogin.reg@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Depends on|                            |4151


--- Comment #3 from Denis Shelomovskij <verylonglogin.reg@gmail.com> 2013-03-16 15:00:58 MSK ---
Added issue 4151 as a dependency as weak reference looks as the right way to fix this.

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