Re: segfault when using std.parallelism and std.process.executeShell
On 12/12/2013 08:33 PM, Nikhil Padmanabhan wrote: Hi, The following code dies with a segfault : import std.stdio, std.parallelism, std.process; void main() { auto a=[hello,world,goodbye]; foreach(s; parallel(a,1)) { auto ls=executeShell(echo ~s); writeln(ls.output); } } I don't know the original problem but that program works without any problem with the current dmd on github. Ali both in ldc and dmd. Removing either the parallel or running something other than executeShell (eg. just doing a writeln) works, which suggests to me that it's something about the way executeShell is interacting with parallel. Pulling it up in lldb, I get : * thread #2: tid = 0x16738e6, 0x000100039198 test`D3std7process7environFNbNdNeZxPPa + 20, stop reason = EXC_BAD_ACCESS (code=1, address=0x0) frame #0: 0x000100039198 test`D3std7process7environFNbNdNeZxPPa + 20 Any thoughts on what might be going wrong? Is executeShell somehow not threadsafe? Thanks! -- Nikhil
Re: segfault when using std.parallelism and std.process.executeShell
On Tuesday, 7 January 2014 at 23:12:09 UTC, Ali Çehreli wrote: don't know the original problem but that program works without any problem with the current dmd on github. Works for me on dmd v2.064 (current stable) on Windows.
segfault when using std.parallelism and std.process.executeShell
Hi, The following code dies with a segfault : import std.stdio, std.parallelism, std.process; void main() { auto a=[hello,world,goodbye]; foreach(s; parallel(a,1)) { auto ls=executeShell(echo ~s); writeln(ls.output); } } both in ldc and dmd. Removing either the parallel or running something other than executeShell (eg. just doing a writeln) works, which suggests to me that it's something about the way executeShell is interacting with parallel. Pulling it up in lldb, I get : * thread #2: tid = 0x16738e6, 0x000100039198 test`D3std7process7environFNbNdNeZxPPa + 20, stop reason = EXC_BAD_ACCESS (code=1, address=0x0) frame #0: 0x000100039198 test`D3std7process7environFNbNdNeZxPPa + 20 Any thoughts on what might be going wrong? Is executeShell somehow not threadsafe? Thanks! -- Nikhil