digitalmars.D.bugs - [Issue 15294] New: receiveTimeout with negative value asserts
- via Digitalmars-d-bugs (49/52) Nov 05 2015 https://issues.dlang.org/show_bug.cgi?id=15294
https://issues.dlang.org/show_bug.cgi?id=15294 Issue ID: 15294 Summary: receiveTimeout with negative value asserts Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: normal Priority: P1 Component: phobos Assignee: nobody puremagic.com Reporter: justin economicmodeling.com std.concurrency.receiveTimeout claims to not wait if the provided Duration is negative, but an assert trips if a negative value is supplied.cat test.dvoid main() { import std.concurrency; import core.time; auto dontWait = dur!"msecs"(-1); spawn(&foo); receiveTimeout(dontWait, (int i){}); } void foo() {} Using DMD 2.069.0:dmd test.d ./testcore.exception.AssertError std/concurrency.d(1910): Assertion failure ---------------- ??:? _d_assert [0x4518f7] ??:? void std.concurrency.__assert(int) [0x459354] ??:? bool std.concurrency.MessageBox.get!(core.time.Duration, pure nothrow nogc safe void function(int)*).get(scope core.time.Duration, scope pure nothrow nogc safe void function(int)*) [0x441614] ??:? bool std.concurrency.receiveTimeout!(pure nothrow nogc safe void function(int)*).receiveTimeout(core.time.Duration, pure nothrow nogc safe void function(int)*) [0x441595] ??:? _Dmain [0x4413c7] ??:? _D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ6runAllMFZ9__lambda1MFZv [0x455f5a] ??:? void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).tryExec(scope void delegate()) [0x455eb0] ??:? void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).runAll() [0x455f16] ??:? void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).tryExec(scope void delegate()) [0x455eb0] ??:? _d_run_main [0x455e0d] ??:? main [0x44ed7d] ??:? __libc_start_main [0x82126b44] Here is the problematic line: https://github.com/D-Programming-Language/phobos/blob/master/std/concurrency.d#L1910 --
Nov 05 2015