I have been thinking a little bit about the issue that Gtk makes the REPL sluggish on windows and from my perspective this points at a little bit more general problem: How should one integrate an external mainloop with the REPL?
For context: If one runs a Gtk program in Python / C / … the last statement is a call to Gtk.main()
, which is blocking and gives control to the mainloop. So in theory we could do the same and would be done.
But if we think about things like a plotting window one is actually interested in keeping the REPL alive and still allow the UI to render. An example here is Winston.jl. My question now is somewhat: Has someone an idea howto solve this properly? Is this something Gtk.jl
can actually handle or is this a job for the REPL code? One rough idea would be to allow that the REPL runs on a different thread while the main thread runs the Gtk mainloop. What currently happens can be seen here:
https://github.com/JuliaGraphics/Gtk.jl/blob/e9127e73466e4f348adc0ee09c0eb50120edb934/src/Gtk.jl#L132
So a task is created and seems to compete with the REPL.