WAD TPIPE.EXE has stopped working

May 20, 2008
11,845
120
Syracuse, NY, USA
Interrupting this command with the console's "X" causes "TPIPE.EXE has stopped working (et c.)"

Code:
(do x=1000001 to 1008389 ( echo %x %@repeat[x,990] ) ) | tpipe /simple=34
 
May 20, 2008
11,845
120
Syracuse, NY, USA
WAD -- what would you expect it to do after you killed its input?
I'd expect it to do the same thing that SORT, GREP, FINDSTR, and dozens of other similar text utilities do, handle the event by exiting gracefully.
 
May 20, 2008
11,845
120
Syracuse, NY, USA
It does have a control handler. Won't help for this (somewhat contrived?) instance.

It'll also be a lot faster to redirect output to a file, and then have TPIPE read the file.
TPIPE.EXE doesn't import SetConsoleCtrlHandler().

Writing to a file first is only a tad faster (and leaves an extra file hanging around).
Code:
v:\> timer & (do x=1000001 to 1008389 ( echo %x %@repeat[x,990] ) ) | tpipe /simple=34 > nul & timer
Timer 1 on: 22:33:15
Timer 1 off: 22:33:17  Elapsed: 0:00:02.85
 
v:\> timer & (do x=1000001 to 1008389 ( echo %x %@repeat[x,990] ) ) > cat1.txt & tpipe /input=cat1.txt /simple=34 > nul & timer
Timer 1 on: 22:34:36
Timer 1 off: 22:34:39  Elapsed: 0:00:02.62

And you also get "TPIPE.EXE has stopped working" when you try to interrupt the likes of:
Code:
tpipe /input=cat1.txt /simple=34
 
May 20, 2008
11,845
120
Syracuse, NY, USA
As it happens, I have the source code for TPIPE.EXE, and it definitely does set a console control handler. But it's irrelevant in your example, because you're killing a different process.
I'm only reporting what I see.
Code:
v:\> dumpbin /imports g:\tc14\TPipe.exe | grep -i console
                  19A GetConsoleCP
                  524 WriteConsoleW
                  1AC GetConsoleMode

What other process? If I use the Start\Run dialog to execute "g:\tc14\tpipe.exe /input=v:\tac1.txt /simple=34" I cannot interrupt it without getting "TPIPE.EXE has stopped working". IMHO, that should never happen (or be called WAD).
 

rconn

Administrator
Staff member
May 14, 2008
12,426
153
If I use the Start\Run dialog to execute "g:\tc14\tpipe.exe /input=v:\tac1.txt /simple=34" I cannot interrupt it without getting "TPIPE.EXE has stopped working". IMHO, that should never happen (or be called WAD).

I agree, but I also can't do anything about it. I've already passed it on to the developers, but I don't think it's significant enough to spend much time worrying about.
 
May 20, 2008
11,845
120
Syracuse, NY, USA
I agree, but I also can't do anything about it. I've already passed it on to the developers, but I don't think it's significant enough to spend much time worrying about.
Hmmm! I think not being able to interrupt such a program is very significant. I hope they agree.

P.S., I was hoping you'd respond to "A question for Rex" in the plugins forum.
 

Similar threads