DialogProgress under lock
#1
This is more of a heads up than anything else:

Since the recent mention of 'fixing' the python dialogProgress in the xbmc changelog, I've had lots seemingly random script 'hangs'.

Long story short...

old xbmc builds would happy display a dialogProgress.create() / . update() when in xbmcgui.lock() state but the newer builds would freeze, without an except.

I can't pin it 100% on the 'fix' but it its behaviour changed around when that was mentioned Huh

Personally I'd prefer a dialogProgress be allowed to be displayed when in this lock() state, as it gives you the ability to inform user of an error straight away. But now I've found it, I can code to avoid hangs.

You can press the back button now Wink ...

cheers
BBB
Retired from Add-on dev
Reply
#2
The problem is we cannot allocate or render anything from more than one thread. This means we have to send it off to the app thread to do the loading of the dialog. This means no holding of graphics locks within the python thread while this is happening, or we get deadlocks.

We could possibly release the graphics locks + reenable them when the dialog is up. This is how we run the dialog loops from outside of the main thread. Will have a think about it.

Cheers,
Jonathan
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#3
appreciated.
Retired from Add-on dev
Reply
#4
Does it work as-is on linux/win32 sdl?

XBox operates differently in this regard.
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#5
as far as I can remember , it was fine on win32 sdl (not tried linux), I've changed my code to accomodate its current behaviour, but I can always knock something up as a tester if you wish ?
Retired from Add-on dev
Reply
#6
That would be most useful.

Cheers,
Jonathan
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#7
BigBellyBilly Wrote:as far as I can remember , it was fine on win32 sdl (not tried linux), I've changed my code to accomodate its current behaviour, but I can always knock something up as a tester if you wish ?

Yes it worked fine on Windows Atlantis Alpha 3.

The problem was on Atlantis builds of XBMC for XBox but not on pre-Atlantis builds.


Cheers Nick
Reply
#8
Heres a test script: locktest.rar

Press A to show a dialog without lock
Press X to show a dialog with lock - It will then hang

there will be debug output into xbmc.log

Hope that helps
BBB
Retired from Add-on dev
Reply
#9
Thanks BBB - will look into it tonight with any luck.

Cheers,
Jonathan
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#10
Should be fixed in r15070.

Cheers,
Jonathan
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#11
gold star to you sir. thanks.
btw, does this mean the win/linux ports use multi-threading wheras the xbox , as you say, doesnt ?
Retired from Add-on dev
Reply
#12
All builds use multi-threading. The difference is on the SDL platforms only the main thread can run the render + process loops, whereas on xbox any thread can run the process and render loops.
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply

Logout Mark Read Team Forum Stats Members Help
DialogProgress under lock0