Hangs on toStringZ()

unDEFER via Digitalmars-d digitalmars-d at puremagic.com
Tue Dec 27 09:27:14 PST 2016


Hello I have very simple line with exec-command:

execl("/bin/bash".toStringz(), "/bin/bash".toStringz(), 
"-c".toStringz(), command.toStringz(), null);

And on this line on toStringz my program sometimes hangs.
backtrace:

(gdb) bt
#0  0x00007f3acd535c6d in nanosleep () at 
../sysdeps/unix/syscall-template.S:84
#1  0x000000000066f57e in 
core.thread.Thread.sleep(core.time.Duration) ()
#2  0x00000000006b2824 in 
core.internal.spinlock.SpinLock.yield(ulong) shared
     ()
#3  0x00000000006b27c0 in core.internal.spinlock.SpinLock.lock() 
shared ()
#4  0x00000000006a7244 in 
gc.gc.GC.runLocked!(gc.gc.GC.mallocNoSync(ulong, uint, ref ulong, 
const(TypeInfo)), gc.gc.mallocTime, gc.gc.numMallocs, ulong, 
uint, ulong, const(TypeInfo)).runLocked(ref ulong, ref uint, ref 
ulong, ref const(TypeInfo)) ()
#5  0x00000000006a0bc6 in gc.gc.GC.malloc(ulong, uint, ulong*, 
const(TypeInfo))
     ()
#6  0x00000000006721d3 in gc_qalloc ()
#7  0x00000000006a99a1 in rt.lifetime.__arrayAlloc(ulong, 
const(TypeInfo), const(TypeInfo)) ()
#8  0x000000000067523a in _d_newarrayU ()
#9  0x0000000000675324 in _d_newarrayiT ()
#10 0x000000000068fde6 in std.string.toStringz(const(char)[]) ()
#11 0x000000000068fe79 in 
std.string.toStringz(const(immutable(char)[])) ()
#12 0x0000000000592dc9 in 
unde.command_line.run.fork_command(unde.global_state.CMDGlobalState, immutable(char)[], immutable(char)[], std.concurrency.Tid) (
     tid=..., command=..., cwd=..., cgs=0x7f3abcdffb80)
     at source/unde/command_line/run.d:2002

What is it? For what it waits?


More information about the Digitalmars-d mailing list