<div dir="auto">Another way I'm reading this is that this may be more reminiscent of what I've done in the 1.x branch where the console is running essentially in a separate TK thread to ensure that it does not have any bearing on the visual updates of the main thread. It reads from a queue which is being populated by the main thread, so that the console has no direct impact on the main thread. That said, this backgrounded process seems to be a bit different than what the TK has and may need to be investigated further.<br><br><div data-smartmail="gmail_signature">Best,<br><br>Ico<br><br>-- <br>Ivica Ico Bukvic, D.M.A.<br>Director, Creativity + Innovation<br>Institute for Creativity, Arts, and Technology<br><br>Virginia Tech<br>Creative Technologies in Music<br>School of Performing Arts – 0141<br>Blacksburg, VA 24061<br>(540) 231-6139<br><a href="mailto:ico@vt.edu">ico@vt.edu</a><br><br><a href="http://www.icat.vt.edu">www.icat.vt.edu</a><br><a href="http://www.performingarts.vt.edu">www.performingarts.vt.edu</a><br><a href="http://l2ork.icat.vt.edu">l2ork.icat.vt.edu</a><br><a href="http://ico.bukvic.net">ico.bukvic.net</a></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jun 12, 2020, 22:25 Jonathan Wilkes <<a href="mailto:jon.w.wilkes@gmail.com">jon.w.wilkes@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Fri, Jun 12, 2020 at 7:47 PM Ivica Bukvic <<a href="mailto:ico@vt.edu" target="_blank" rel="noreferrer">ico@vt.edu</a>> wrote:<br>
><br>
> This may be a way how to avoid console output bogging down the main GUI. Namely, running it in a background.<br>
><br>
> <a href="https://blog.logrocket.com/node-js-multithreading-what-are-worker-threads-and-why-do-they-matter-48ab102f8b10/" rel="noreferrer noreferrer" target="_blank">https://blog.logrocket.com/node-js-multithreading-what-are-worker-threads-and-why-do-they-matter-48ab102f8b10/</a><br>
<br>
It looks like we've run into this before given the presence of<br>
throttle_console_scroll in pdgui.js. But that was just due<br>
to the slowness of the scrollbar itself.<br>
<br>
Probably an easier solution than a worker thread is to batch appending<br>
new stuff to the console when necessary:<br>
<br>
1. when a message to the console arrives, print it immediately and set<br>
a timeout, say 30ms<br>
2. during the timeout period, add incoming console messages to a<br>
documentFragment<br>
3. at the end of the timeout, if there's content inside the<br>
documentFragment then append it to the console and start a new<br>
timeout. If there's no content then do nothing.<br>
<br>
That way if a user is thrashing the console, they only eat the cost of<br>
rendering at most every 30ms.<br>
<br>
-Jonathan<br>
<br>
><br>
> Best,<br>
><br>
> Ico<br>
><br>
> --<br>
> Ivica Ico Bukvic, D.M.A.<br>
> Director, Creativity + Innovation<br>
> Institute for Creativity, Arts, and Technology<br>
><br>
> Virginia Tech<br>
> Creative Technologies in Music<br>
> School of Performing Arts – 0141<br>
> Blacksburg, VA 24061<br>
> (540) 231-6139<br>
> <a href="mailto:ico@vt.edu" target="_blank" rel="noreferrer">ico@vt.edu</a><br>
><br>
> <a href="http://www.icat.vt.edu" rel="noreferrer noreferrer" target="_blank">www.icat.vt.edu</a><br>
> <a href="http://www.performingarts.vt.edu" rel="noreferrer noreferrer" target="_blank">www.performingarts.vt.edu</a><br>
> <a href="http://l2ork.icat.vt.edu" rel="noreferrer noreferrer" target="_blank">l2ork.icat.vt.edu</a><br>
> <a href="http://ico.bukvic.net" rel="noreferrer noreferrer" target="_blank">ico.bukvic.net</a><br>
> _______________________________________________<br>
> L2Ork-dev mailing list<br>
> <a href="mailto:L2Ork-dev@disis.music.vt.edu" target="_blank" rel="noreferrer">L2Ork-dev@disis.music.vt.edu</a><br>
> <a href="https://disis.music.vt.edu/listinfo/l2ork-dev" rel="noreferrer noreferrer" target="_blank">https://disis.music.vt.edu/listinfo/l2ork-dev</a><br>
_______________________________________________<br>
L2Ork-dev mailing list<br>
<a href="mailto:L2Ork-dev@disis.music.vt.edu" target="_blank" rel="noreferrer">L2Ork-dev@disis.music.vt.edu</a><br>
<a href="https://disis.music.vt.edu/listinfo/l2ork-dev" rel="noreferrer noreferrer" target="_blank">https://disis.music.vt.edu/listinfo/l2ork-dev</a></blockquote></div>