On 9/26/2011 2:58 PM, Steven Schveighoffer wrote:
This is likely a DMC issue, and is probably best reported as a DMC bug. I don't know how much more you want to pursue this, but the next steps I'd recommend are:

1. obtain the dmc compiler (it's free) if you haven't already.
2. Compile an empty C program and run it using SciTE and Notepad++. Verify the same error occurs
3. report the failure using DMC's bugzilla.

I'm guessing there's something in the way SciTE or Notepad++ sets up the pipes before executing the process which causes the problem. I have a sinking feeling we'll see more of this issue when the new std.process is released :(

-Steve
OK, I think I found the bug, and I'm pretty sure it's what I was saying originally:

A handle is being closed that isn't actually valid.

Which handle? stderr. stderr is being closed when in fact it is the same handle as stdout. So when _fcloseallp() is called, it goes through the structures in __iob and closes each one in turn -- which causes a duplicate close operation on stderr, because it already gets closed when stdout gets closed.

So it's an snn.lib issue. Is it easy to fix? (I hope it is...)

Thanks!

Reply via email to