Tracker.autorun runs copies of computation in several browser tabs

Hello, I have a problem with Tracker.autorun with several opened browser tabs. I have a code like this:

Tracker.autorun(function () {
  const userId = Meteor.userId();
  if (! userId) {   
      Accounts.callLoginMethod(
	  ...
	);
    }
  }
});

This snippet should work when user log out. It immediately creates new anonymous user. And it works fine with one opened browser tab, but with several something crazy happens.

My current attempt to make this working as expected is the following: I check that tab is active or not and call Accounts.callLoginMethod() only if tab is active. But even here all tab copies of this computation run one-by-one.

Tracker.autorun(function () {
  const userId = Meteor.userId();
  let visibility;
  let guestAreAllowed;
  let loggingIn;
  Tracker.nonreactive(function () {
    visibility = document[visibilityState];
    loggingIn = Accounts.loggingIn();
  });
  if (! userId) {
    if (visibility === "visible" && !loggingIn) {
      Accounts.callLoginMethod(
	  ...
	);
    } else {
      Tracker.currentComputation.stop();
    }
  }
});

It is less crazy, but still all non-active tab computation runs. In result I see several changes of Meteor.userId in localStorage. I expect that after user log out I will see creation only of one new anonymous user even if 11 tabs are opened.

Is there a way to prevent computation in non-active browser’s tab? Or do something with that?