PDA

View Full Version : GUI Output Buffering Control


esnyder58
09-22-2009, 09:37 PM
In VBP V6.7, and in the versions up to V7.2 that I can find, output seems to be cached such that if a program runs and outputs messages, they are not output until either
o The step is completed
o The output reaches some threshold

In my build, I cut down "noise" output by modifying the home-grown utilities that my build runs, but when I did so, I received NO output until the step was completed. This makes it impossible to tell the progress of the bulds with my new non-verbose messages, which is not at all what was intended.

I'm running this build on a Virtual PC 2007 XP system, and can't easily migrate it to an actual computer, so if that's the problem, I hope you don't mind that I wasted your time.

kinook
09-23-2009, 07:27 AM
When running a program and capturing output from stdout, VBP will check for available output every second (configurable at Tools | Application Options | Advanced | Run program output loop delay), logging up to 16K of output each time (configurable at Tools | Application Options | Advanced | Run program output buffer size).

Any logging of captured program output will occur immediately in the log file and console app (VisBuildCmd), and within 1/4 second in the GUI Output pane.

When running the attached project in VBP 7.2, I see the expected result of

Iteration #x...

added to the Output pane every second.

Note that when capturing program output from a file (rather than stdout), the output will not be logged until the program completes and the file is available for reading.

You might want to ensure that you are regularly flushing output in your utilities so that it gets sent to stdout immediately.

esnyder58
09-23-2009, 09:01 AM
I could not find that for the life of me. I don't have a an "Advanced" Tab under applcation options in V6.7.

All I have is a list of .config files, and I can edit them.

Is the same option available by adding it to the configuration file?

...it may be time to upgrade....

Let me know... thanks

-e

kinook
09-23-2009, 11:27 AM
In v6 they can be set via the object model.
http://www.kinook.com/VisBuildPro/Manual/runprogramoutputwaittimeoutproperty.htm
http://www.kinook.com/VisBuildPro/Manual/objectmodel.htm