Bug 5356 – receiveTimeout value < 500 does not work.
Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
druntime
Product
D
Version
D2
Platform
x86_64
OS
Linux
Creation time
2010-12-18T15:14:00Z
Last change time
2010-12-22T09:16:14Z
Assigned to
sean
Creator
joost.t.hart
Comments
Comment #0 by joost.t.hart — 2010-12-18T15:14:25Z
See the code snippets below.
$ cat time.d
import std.concurrency;
import std.conv;
void run( long tim )
{
foreach( dum; 0 .. 100 )
{
receiveTimeout( tim, (int x){} );
}
}
void main( string[] args )
{
run( to!long( args[1] ) );
}
$ time ./time 500
real 0m49.673s
user 0m0.000s
sys 0m0.000s
$ time ./time 499
real 0m0.972s
user 0m0.000s
sys 0m0.000s
$
Comment #1 by joost.t.hart — 2010-12-18T15:33:10Z
Thought following output could be of interest (there's no 2.050 version field yet):
$ dmd -v time.d
binary /local/dmd2/usr/bin/dmd
version v2.050
config /etc/dmd.conf
parse time
importall time
import object (/local/dmd2/usr/include/d/dmd/druntime/import/object.di)
import std.concurrency (/local/dmd2/usr/include/d/dmd/phobos/std/concurrency.d)
import core.atomic (/local/dmd2/usr/include/d/dmd/druntime/import/core/atomic.di)
import core.sync.barrier (/local/dmd2/usr/include/d/dmd/druntime/import/core/sync/barrier.di)
import core.sync.exception (/local/dmd2/usr/include/d/dmd/druntime/import/core/sync/exception.di)
import core.sync.condition (/local/dmd2/usr/include/d/dmd/druntime/import/core/sync/condition.di)
import core.sync.mutex (/local/dmd2/usr/include/d/dmd/druntime/import/core/sync/mutex.di)
import core.sys.posix.pthread (/local/dmd2/usr/include/d/dmd/druntime/import/core/sys/posix/pthread.di)
import core.sys.posix.config (/local/dmd2/usr/include/d/dmd/druntime/import/core/sys/posix/config.di)
import core.stdc.config (/local/dmd2/usr/include/d/dmd/druntime/import/core/stdc/config.di)
import core.sys.posix.sys.types (/local/dmd2/usr/include/d/dmd/druntime/import/core/sys/posix/sys/types.di)
import core.stdc.stdint (/local/dmd2/usr/include/d/dmd/druntime/import/core/stdc/stdint.di)
import core.stdc.stddef (/local/dmd2/usr/include/d/dmd/druntime/import/core/stdc/stddef.di)
import core.stdc.signal (/local/dmd2/usr/include/d/dmd/druntime/import/core/stdc/signal.di)
import core.stdc.wchar_ (/local/dmd2/usr/include/d/dmd/druntime/import/core/stdc/wchar_.di)
import core.stdc.stdarg (/local/dmd2/usr/include/d/dmd/druntime/import/core/stdc/stdarg.di)
import core.stdc.stdio (/local/dmd2/usr/include/d/dmd/druntime/import/core/stdc/stdio.di)
import core.stdc.time (/local/dmd2/usr/include/d/dmd/druntime/import/core/stdc/time.di)
import core.sys.posix.sched (/local/dmd2/usr/include/d/dmd/druntime/import/core/sys/posix/sched.di)
import core.sys.posix.time (/local/dmd2/usr/include/d/dmd/druntime/import/core/sys/posix/time.di)
import core.sys.posix.signal (/local/dmd2/usr/include/d/dmd/druntime/import/core/sys/posix/signal.di)
import core.sync.config (/local/dmd2/usr/include/d/dmd/druntime/import/core/sync/config.di)
import core.sys.posix.sys.time (/local/dmd2/usr/include/d/dmd/druntime/import/core/sys/posix/sys/time.di)
import core.sys.posix.sys.select (/local/dmd2/usr/include/d/dmd/druntime/import/core/sys/posix/sys/select.di)
import core.stdc.errno (/local/dmd2/usr/include/d/dmd/druntime/import/core/stdc/errno.di)
import core.sync.rwmutex (/local/dmd2/usr/include/d/dmd/druntime/import/core/sync/rwmutex.di)
import core.sync.semaphore (/local/dmd2/usr/include/d/dmd/druntime/import/core/sync/semaphore.di)
import core.sys.posix.semaphore (/local/dmd2/usr/include/d/dmd/druntime/import/core/sys/posix/semaphore.di)
import std.variant (/local/dmd2/usr/include/d/dmd/phobos/std/variant.d)
import std.traits (/local/dmd2/usr/include/d/dmd/phobos/std/traits.d)
import std.typetuple (/local/dmd2/usr/include/d/dmd/phobos/std/typetuple.d)
import std.c.string (/local/dmd2/usr/include/d/dmd/phobos/std/c/string.d)
import core.stdc.string (/local/dmd2/usr/include/d/dmd/druntime/import/core/stdc/string.di)
import std.conv (/local/dmd2/usr/include/d/dmd/phobos/std/conv.d)
import core.stdc.math (/local/dmd2/usr/include/d/dmd/druntime/import/core/stdc/math.di)
import core.memory (/local/dmd2/usr/include/d/dmd/druntime/import/core/memory.di)
import core.stdc.stdlib (/local/dmd2/usr/include/d/dmd/druntime/import/core/stdc/stdlib.di)
import std.algorithm (/local/dmd2/usr/include/d/dmd/phobos/std/algorithm.d)
import std.array (/local/dmd2/usr/include/d/dmd/phobos/std/array.d)
import std.c.stdio (/local/dmd2/usr/include/d/dmd/phobos/std/c/stdio.d)
import std.encoding (/local/dmd2/usr/include/d/dmd/phobos/std/encoding.d)
import std.string (/local/dmd2/usr/include/d/dmd/phobos/std/string.d)
import core.exception (/local/dmd2/usr/include/d/dmd/druntime/import/core/exception.di)
import std.ctype (/local/dmd2/usr/include/d/dmd/phobos/std/ctype.d)
import std.exception (/local/dmd2/usr/include/d/dmd/phobos/std/exception.d)
import std.range (/local/dmd2/usr/include/d/dmd/phobos/std/range.d)
import std.functional (/local/dmd2/usr/include/d/dmd/phobos/std/functional.d)
import std.metastrings (/local/dmd2/usr/include/d/dmd/phobos/std/metastrings.d)
import std.stdio (/local/dmd2/usr/include/d/dmd/phobos/std/stdio.d)
import std.stdiobase (/local/dmd2/usr/include/d/dmd/phobos/std/stdiobase.d)
import std.file (/local/dmd2/usr/include/d/dmd/phobos/std/file.d)
import std.date (/local/dmd2/usr/include/d/dmd/phobos/std/date.d)
import std.datebase (/local/dmd2/usr/include/d/dmd/phobos/std/datebase.d)
import std.dateparse (/local/dmd2/usr/include/d/dmd/phobos/std/dateparse.d)
import std.c.stdlib (/local/dmd2/usr/include/d/dmd/phobos/std/c/stdlib.d)
import std.format (/local/dmd2/usr/include/d/dmd/phobos/std/format.d)
import std.bitmanip (/local/dmd2/usr/include/d/dmd/phobos/std/bitmanip.d)
import std.intrinsic (/local/dmd2/usr/include/d/dmd/phobos/std/intrinsic.d)
import std.stdarg (/local/dmd2/usr/include/d/dmd/phobos/std/stdarg.d)
import std.system (/local/dmd2/usr/include/d/dmd/phobos/std/system.d)
import std.typecons (/local/dmd2/usr/include/d/dmd/phobos/std/typecons.d)
import std.utf (/local/dmd2/usr/include/d/dmd/phobos/std/utf.d)
import std.path (/local/dmd2/usr/include/d/dmd/phobos/std/path.d)
import std.process (/local/dmd2/usr/include/d/dmd/phobos/std/process.d)
import std.c.process (/local/dmd2/usr/include/d/dmd/phobos/std/c/process.d)
import std.c.stddef (/local/dmd2/usr/include/d/dmd/phobos/std/c/stddef.d)
import core.sys.posix.stdlib (/local/dmd2/usr/include/d/dmd/druntime/import/core/sys/posix/stdlib.di)
import core.sys.posix.sys.wait (/local/dmd2/usr/include/d/dmd/druntime/import/core/sys/posix/sys/wait.di)
import core.sys.posix.unistd (/local/dmd2/usr/include/d/dmd/druntime/import/core/sys/posix/unistd.di)
import core.sys.posix.inttypes (/local/dmd2/usr/include/d/dmd/druntime/import/core/sys/posix/inttypes.di)
import core.stdc.inttypes (/local/dmd2/usr/include/d/dmd/druntime/import/core/stdc/inttypes.di)
import core.sys.posix.pwd (/local/dmd2/usr/include/d/dmd/druntime/import/core/sys/posix/pwd.di)
import std.regexp (/local/dmd2/usr/include/d/dmd/phobos/std/regexp.d)
import std.outbuffer (/local/dmd2/usr/include/d/dmd/phobos/std/outbuffer.d)
import std.c.stdarg (/local/dmd2/usr/include/d/dmd/phobos/std/c/stdarg.d)
import core.sys.posix.dirent (/local/dmd2/usr/include/d/dmd/druntime/import/core/sys/posix/dirent.di)
import core.sys.posix.fcntl (/local/dmd2/usr/include/d/dmd/druntime/import/core/sys/posix/fcntl.di)
import core.sys.posix.sys.stat (/local/dmd2/usr/include/d/dmd/druntime/import/core/sys/posix/sys/stat.di)
import core.sys.posix.utime (/local/dmd2/usr/include/d/dmd/druntime/import/core/sys/posix/utime.di)
import core.sys.posix.stdio (/local/dmd2/usr/include/d/dmd/druntime/import/core/sys/posix/stdio.di)
import std.c.linux.linux (/local/dmd2/usr/include/d/dmd/phobos/std/c/linux/linux.d)
import std.c.linux.pthread (/local/dmd2/usr/include/d/dmd/phobos/std/c/linux/pthread.d)
import core.sys.posix.dlfcn (/local/dmd2/usr/include/d/dmd/druntime/import/core/sys/posix/dlfcn.di)
import core.sys.posix.sys.mman (/local/dmd2/usr/include/d/dmd/druntime/import/core/sys/posix/sys/mman.di)
import std.c.linux.socket (/local/dmd2/usr/include/d/dmd/phobos/std/c/linux/socket.d)
import core.sys.posix.arpa.inet (/local/dmd2/usr/include/d/dmd/druntime/import/core/sys/posix/arpa/inet.di)
import core.sys.posix.sys.socket (/local/dmd2/usr/include/d/dmd/druntime/import/core/sys/posix/sys/socket.di)
import core.sys.posix.sys.uio (/local/dmd2/usr/include/d/dmd/druntime/import/core/sys/posix/sys/uio.di)
import core.sys.posix.netinet.tcp (/local/dmd2/usr/include/d/dmd/druntime/import/core/sys/posix/netinet/tcp.di)
import core.sys.posix.netinet.in_ (/local/dmd2/usr/include/d/dmd/druntime/import/core/sys/posix/netinet/in_.di)
import std.math (/local/dmd2/usr/include/d/dmd/phobos/std/math.d)
import std.random (/local/dmd2/usr/include/d/dmd/phobos/std/random.d)
import std.c.time (/local/dmd2/usr/include/d/dmd/phobos/std/c/time.d)
import std.numeric (/local/dmd2/usr/include/d/dmd/phobos/std/numeric.d)
import std.complex (/local/dmd2/usr/include/d/dmd/phobos/std/complex.d)
import core.thread (/local/dmd2/usr/include/d/dmd/druntime/import/core/thread.di)
import std.regex (/local/dmd2/usr/include/d/dmd/phobos/std/regex.d)
import std.uni (/local/dmd2/usr/include/d/dmd/phobos/std/uni.d)
import std.container (/local/dmd2/usr/include/d/dmd/phobos/std/container.d)
semantic time
semantic2 time
semantic3 time
code time
function run
function __dgliteral1
function main
function receiveTimeout
function checkops
function get
function onStandardMsg
function onLinkDeadMsg
function onControlMsg
function scan
function pty
function convertsTo
function convertsTo
function map
function get
function convertsTo
function convertsTo
function get
function get
function this
function opAssign
function handler
function getPtr
function tryPutting
function opCmp
function to
function toImpl
function to
function front
function toImpl
function this
function opAssign
function handler
function getPtr
function tryPutting
function to
function toImpl
function convertsTo
function convertsTo
function get
function get
function convertsTo
function convertsTo
function get
function get
function to
function toImpl
function parseString
function front
function empty
function popFront
function parse
function convError
function to
function toImpl
function to
function toImpl
function convError
gcc time.o -o time -m32 -Xlinker -L/local/dmd2/usr/lib -Xlinker --export-dynamic -lphobos2 -lpthread -lm
$