[Issue 16203] New: std.signals connect() error
    via Digitalmars-d-bugs 
    digitalmars-d-bugs at puremagic.com
       
    Fri Jun 24 21:04:18 PDT 2016
    
    
  
https://issues.dlang.org/show_bug.cgi?id=16203
          Issue ID: 16203
           Summary: std.signals connect() error
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P1
         Component: phobos
          Assignee: nobody at puremagic.com
          Reporter: nmtigor.wang at googlemail.com
Hello, 
my test codes are as follows:
==============
module dtest;
import std.signals;
struct SIG {}
class C1
{
  void watch( SIG ) {}
  void delegate(T1) createWatcher( T1 )() 
  {
      return delegate void( T1 sig ) { watch( sig ); };
  }
}
class C2
{
  mixin Signal!SIG;
}
unittest
{
  auto c1 = new C1;
  auto c2 = new C2;  
  auto slot = c1.createWatcher!SIG;
  c2.connect( slot );
}
==============
When I run "rdmd -main -unittest dtest", it outputs following messages:
/tmp/.rdmd-1000/rdmd-dtest.d-1873AE3B357FD0F111512F17802663A4/dtest(_D4core7runtime18runModuleUnitTestsUZ19unittestSegvHandlerUNbiPS4core3sys5posix6signal9siginfo_tPvZv+0x38)[0x45f67c]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x113d0)[0x7f97e53a03d0]
段错误 (核心已转储)
These messages are too vague. The source code of connect() also looks magic. I
have no idea of what's wrong.
--
    
    
More information about the Digitalmars-d-bugs
mailing list