Try to lock interface while it is already locked !
Posted: 02 June 2020, 00:19
When going through a replay of my game (Downforce), I regularly get error messages in the javascript console and the interface blocks untill I click on the "next move". The error message is: Try to lock interface while it is already locked !
It happens at distinct places like move like move #137 of table https://boardgamearena.com/table?table=92381834
My guess: the onEnteringState method of my class does ajax calls while the interface is still locked from a previous one. Any idea on this? It looks like a studio bug, but maybe I am doing something wrong.
The full error stack:
Excerpt of my method:
It happens at distinct places like move like move #137 of table https://boardgamearena.com/table?table=92381834
My guess: the onEnteringState method of my class does ajax calls while the interface is still locked from a previous one. Any idea on this? It looks like a studio bug, but maybe I am doing something wrong.
The full error stack:
Code: Select all
Try to lock interface while it is already locked ! 3 ly_studio.js:2:652013
During notification gameStateChange
this.notifqueue[i] is undefined
ajaxcall@https://x.boardgamearena.net/data/themereleases/200527-1725/js/modules/layer/ly_studio.js:2:638508
onEnteringState@https://x.boardgamearena.net/data/themereleases/current/games/downforce/200528-0049/downforce.js:1:5434
ntf_gameStateChange@https://x.boardgamearena.net/data/themereleases/200527-1725/js/modules/layer/ly_studio.js:2:725390
hitch/<@https://x.boardgamearena.net/data/themereleases/200527-1725/js/dojoroot/dojo/dojo.js:8:33825
_269@https://x.boardgamearena.net/data/themereleases/200527-1725/js/dojoroot/dojo/dojo.js:8:60682
dojo/on/</on.emit@https://x.boardgamearena.net/data/themereleases/200527-1725/js/dojoroot/dojo/dojo.js:8:54866
dojo/on/</on.emit@https://x.boardgamearena.net/data/themereleases/200527-1725/js/dojoroot/dojo/dojo.js:8:55648
emit@https://x.boardgamearena.net/data/themereleases/200527-1725/js/dojoroot/dojo/dojo.js:8:59320
publish@https://x.boardgamearena.net/data/themereleases/200527-1725/js/dojoroot/dojo/dojo.js:8:58881
publish@https://x.boardgamearena.net/data/themereleases/200527-1725/js/dojoroot/dojo/dojo.js:8:51062
dispatchNotification@https://x.boardgamearena.net/data/themereleases/200527-1725/js/modules/layer/ly_studio.js:2:554583
dispatchNotifications@https://x.boardgamearena.net/data/themereleases/200527-1725/js/modules/layer/ly_studio.js:2:548746
onNotification@https://x.boardgamearena.net/data/themereleases/200527-1725/js/modules/layer/ly_studio.js:2:544763
sendNextArchive@https://x.boardgamearena.net/data/themereleases/200527-1725/js/modules/layer/ly_studio.js:2:662559
onEndDisplayLastArchive@https://x.boardgamearena.net/data/themereleases/200527-1725/js/modules/layer/ly_studio.js:2:668064
ntf_end_archivewaitingdelay@https://x.boardgamearena.net/data/themereleases/200527-1725/js/modules/layer/ly_studio.js:2:727726
hitch/<@https://x.boardgamearena.net/data/themereleases/200527-1725/js/dojoroot/dojo/dojo.js:8:33825
_269@https://x.boardgamearena.net/data/themereleases/200527-1725/js/dojoroot/dojo/dojo.js:8:60682
dojo/on/</on.emit@https://x.boardgamearena.net/data/themereleases/200527-1725/js/dojoroot/dojo/dojo.js:8:54866
dojo/on/</on.emit@https://x.boardgamearena.net/data/themereleases/200527-1725/js/dojoroot/dojo/dojo.js:8:55648
emit@https://x.boardgamearena.net/data/themereleases/200527-1725/js/dojoroot/dojo/dojo.js:8:59320
publish@https://x.boardgamearena.net/data/themereleases/200527-1725/js/dojoroot/dojo/dojo.js:8:58881
publish@https://x.boardgamearena.net/data/themereleases/200527-1725/js/dojoroot/dojo/dojo.js:8:51062
dispatchNotification@https://x.boardgamearena.net/data/themereleases/200527-1725/js/modules/layer/ly_studio.js:2:554583
dispatchNotifications@https://x.boardgamearena.net/data/themereleases/200527-1725/js/modules/layer/ly_studio.js:2:548746
onSynchronousNotificationEnd@https://x.boardgamearena.net/data/themereleases/200527-1725/js/modules/layer/ly_studio.js:2:564111
hitch/<@https://x.boardgamearena.net/data/themereleases/200527-1725/js/dojoroot/dojo/dojo.js:8:33825
_269@https://x.boardgamearena.net/data/themereleases/200527-1725/js/dojoroot/dojo/dojo.js:8:60682
dojo/on/</on.emit@https://x.boardgamearena.net/data/themereleases/200527-1725/js/dojoroot/dojo/dojo.js:8:54866
dojo/on/</on.emit@https://x.boardgamearena.net/data/themereleases/200527-1725/js/dojoroot/dojo/dojo.js:8:55648
emit@https://x.boardgamearena.net/data/themereleases/200527-1725/js/dojoroot/dojo/dojo.js:8:59320
publish@https://x.boardgamearena.net/data/themereleases/200527-1725/js/dojoroot/dojo/dojo.js:8:58881
publish@https://x.boardgamearena.net/data/themereleases/200527-1725/js/dojoroot/dojo/dojo.js:8:51062
endnotif@https://x.boardgamearena.net/data/themereleases/200527-1725/js/modules/layer/ly_studio.js:2:451633
@https://x.boardgamearena.net/data/themereleases/200527-1725/js/modules/layer/ly_studio.js:2:1Excerpt of my method:
Code: Select all
onEnteringState: function( stateName, args )
{
switch( stateName )
{
// [...]
case 'moveCar':
// [...]
if ( movements . color == 'Joker' )
{
this.ajaxcall( this.gameUrl + "chooseJokerColor.html", { lock: true }, this, function( result ) { } );
return;
}
// [...]
}
}