Refactor to not use any locking because locking across tabs inherently does not work. Instead opt for a distributed approach where each tab keeps track of all the other tabs, and broadcasts its own status.