[Github-comments] [geany/geany] Handle continuous G_IO_IN-s without any data (#1461)

zhekov notifications at xxxxx
Thu Jul 13 18:40:55 UTC 2017


@b4n 
@kugel- 

The story so far:

Ubuntu 14.04 / glib 2.40 / Geany-1.30.1 - works.
Ubuntu 16.04 / glib 2.48 / Geany-1.30.1 - hangs.
Ubuntu 17.04 / glib 2.52 / Geany-1.30.1 - hangs.

I ran a "hanged" Geany for 1 hour, with some occasional traffic.
It was extremely slow, of course, and never recovered by itself.

Then I left the time-sourced version idle for 1 hour on a "single" 3.0GHz virtual CPU.
It wasted ~8.3 seconds.

Now, there is a chance that removing the timeout source and creating a new watch source will temporarily fix the input state. But replacing sources it not free either, and each
time we switch from watch to timeout, we wait for 200 empty GIO_IN-s, which takes, say, 0.04 sec (YMMV). If we have 208 switches for an hour long debugging session - and each "Step" or automatic tooltip in Scope will likely generate a switch - the effect is zero.

Another thing I noted is that practically blocking the glib main loop has side effects. At one time, I activated File -> Open, then killed gdb, which freed the CPU, and the file
open dialog was immediately displayed - but neither [Open] nor [Cancel] worked. So I'd rather avoid frequent empty G_IO_IN sequences.

Considering also the added complexity, I'm not going to write a switch-back-and-forth mechanism. This PR is a hack (gee), and I don't want to make it nastier than required.

TODO: test more glib versions: 2.53, 2.44, 2.??


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/1461#issuecomment-315166220
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.geany.org/pipermail/github-comments/attachments/20170713/8d9cc425/attachment.html>


More information about the Github-comments mailing list