Linuxdcpp gui is unresponsive when search results are being updated

Asked by Precious

Hello,

I am a CS undergrad and we use dc hubs on our LAN for file sharing. I have been using Linuxdcpp for the past two years and one thing I have noticed is that, when there are quite a few search results (2K-3k), the GUI is unresponsive. By unresponsive, I mean none of the GUI events like clicks etc seem to be handled till the list is completely updated. Also when I switch to another window and back to the Linuxdcpp window none of the GUI window elements get rendered, I just get a grayish window. While not a big problem, it is irritating because on our LAN it can take up to a minute for the list to be completely filled. I think (just taking a guess from what I know about GUI systems) this is because the list update is being done in a way that is blocking the gui event loop. I wanted to know if this was a known issue and if so are there any plans to fix it? I searched the bug list but did not find any bugs related to this.

Thanks
Gautam
(gautam dot 2305 at gmail)

Question information

Language:
English Edit question
Status:
Solved
For:
LinuxDC++ Edit question
Assignee:
No assignee Edit question
Solved by:
Razzloss
Solved:
Last query:
Last reply:
Revision history for this message
Best Razzloss (razzloss) said :
#1

Well there's bug #302340 and #442475. Changes committed for the 442475 should already help, so I assume you're using 1.0.3 and not the main trunk? GTK main thread is blocked when Search Results come in fast enough (5-10Mb/s with my machine), which prevents the window rendering and user interaction.

So try with the main trunk and see if it's faster (should be, duplicate checking is done much faster now and if grouping isn't enabled when search is started there's no need to check the whole resultStore).

--RZ

Revision history for this message
Precious (gautam2305) said :
#2

Hello,

I was using 1.0.3 as you guessed. I just built the trunk version and the problem seems to have gone. In fact the GUI now feels very reponsive :) Thanks for the quick reply.