On 05/10/2013 14:59, Nick Treleaven wrote:
spawn that doesn't block Geany or outright hang. This definitely
It would be nice to figure out *why* it was hanging and fix *that* problem though, not just drop the existing workaround code and write 3rd workaround that's arguably worse[1] than the original issue.
I did try.
In fact I wasted about a week trying to fix it, reading windows API docs, reading forum threads etc.
happened very frequently when using dmd from dlang.org. See:
https://github.com/geany/geany/commit/a3664fae9ece396952d732cc937e63192d8c6f...
I don't remember seeing any bug reports for this, so it's possible it's limited to you or the specific application you were using, maybe a bug in a certain version of DMD? The commit messages doesn't explain what the actual root of the problem was or why it could not be fixed properly, or what was tried to fix it before abandoning the existing code.
It was last year, but I think it wasn't just with dmd, although that triggered it the most, and it only happened when dmd wrote more than a certain amount to stderr (cascading errors). It was very suspicious that the custom spawn code works until there are too many errors, at least with dmd.
One person reported it on the devel list. See: http://lists.geany.org/pipermail/devel/2011-July/004845.html
Unfortunately I missed that mail at the time, but I tried the provided fix before committing my system() change, and I remember it didn't fix all the issues with blocking and/or hanging Geany I had.