|
wxMaxima
|
Lays out the output of all lines appended in this scope once, at its end. More...
#include <Worksheet.h>
Public Member Functions | |
| OutputBatch (Worksheet *worksheet) | |
| OutputBatch (const OutputBatch &)=delete | |
| OutputBatch & | operator= (const OutputBatch &)=delete |
Lays out the output of all lines appended in this scope once, at its end.
InsertLine() lays out the whole output of the cell it appends to, so a command that prints thousands of lines one by one costs time quadratic in their number – 59 ms per line once 2000 lines were there, which, at the pace disp() in a loop prints, was enough to freeze wxMaxima (GH #2594). MaximaProcessManager opens one of these around each run of output items it hands to the worksheet. Nothing reads the layout of a cell while its output is still arriving, which is what makes deferring it safe; the scope ends before anything else Maxima sends (a prompt, a question) is handled. Scopes nest; only the outermost one lays out.