Table of Contents
This happens while going forward or backward for a large number of moves in a game. Since Java offers no stream selectors for file streams, GoGui needs to use thread synchronization to read the output and error stream of the Go program for preserving the correct order of the received output in the GTP shell and for detecting timeouts. This synchronization can become slow if there are other CPU intensive background processes running on the computer. The problem can be avoided if the Go engine implements the gg-undo and gogui-play_sequence commands (see Chapter 3, Compatibility), then a single command can replace up to several hundred play or undo commands.
Due to deficiencies in the Java library, it cannot be guaranteed that the
standard error and standard output of the GTP engine are always displayed in
the correct order in the GTP shell. In cases where the order is critical for
debugging purposes, it is better to invoke GoGui from a terminal with the
-verbose
option and watch the logging of the GTP streams
in the terminal.