[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