2014-12-09, 16:24
I recently upgrade to 0.5.6c and I gotta say this addon has improved dramatically in both stability and featureset over the last couple of month, great work Luna, very impressive.
Code related question for you Luna, in FileAccess.py, what is the intent of the refreshLocks method? I've been having a strange issue on my FireTVs and I think it's related to that method. Long story short, my system works great for a seemingly random period of time and then it becomes unstable and can't play any videos either via PSTVL or direct launching. Any attempts to play a video just bring up the XBMC loading indicator and the video never starts (no buffering, just never starts). Checking the log shows that the request to start the video happens, but it just doesn't start.
After some digging, I believe on the FireTVs that the refreshLocks method is spinning up threads that never return and eventually there aren't enough system threads available to even start up a video which is why I spin like this. Restarting XBMC (not the whole FireTV) temporarily solves the issue. A couple of weeks ago I put a return statement at the top of the refreshLocks method so that the refreshLocksTimer doesn't get reset and no more threads get spun up. This has solved my issue and my system is good to go, or at least appears to be. I'm curious what this method is for and if I may have caused downstream side effects that I haven't noticed yet. Thanks!
Code related question for you Luna, in FileAccess.py, what is the intent of the refreshLocks method? I've been having a strange issue on my FireTVs and I think it's related to that method. Long story short, my system works great for a seemingly random period of time and then it becomes unstable and can't play any videos either via PSTVL or direct launching. Any attempts to play a video just bring up the XBMC loading indicator and the video never starts (no buffering, just never starts). Checking the log shows that the request to start the video happens, but it just doesn't start.
After some digging, I believe on the FireTVs that the refreshLocks method is spinning up threads that never return and eventually there aren't enough system threads available to even start up a video which is why I spin like this. Restarting XBMC (not the whole FireTV) temporarily solves the issue. A couple of weeks ago I put a return statement at the top of the refreshLocks method so that the refreshLocksTimer doesn't get reset and no more threads get spun up. This has solved my issue and my system is good to go, or at least appears to be. I'm curious what this method is for and if I may have caused downstream side effects that I haven't noticed yet. Thanks!