jbenny11:
I might be mistaken here, but when you start any round does'nt your light turn red? In options you can also turn off friend noise. JB
Red only means that you can't be invited to a game. It does not stop your friends list from being updated when a friend's status changes, friend invites, or cc invites, which are some of the possible suspects for meter glitch causes.
There are multiple solutions to this problem... all that come to mind are rather basic programming techniques.
Solution #1: Real-time updates, except when flag is set. Similar to a "semaphore."
- When the client is loaded, a flag that we'll call "BUSYFLAG" is created and set to zero.
- On the active player's client, all non-critical functions (friend list updates, invites, etc.) that can occur during a swing will check the "BUSYFLAG" prior to running. If "BUSYFLAG" is 0, they are free to continue on and do their job. If "BUSYFLAG" is 1, they will put themselves in a queue to be executed later.
- Starting a backswing sets "BUSYFLAG" to 1.
- An aim click or completion of a practice swing will set the "BUSYFLAG" to 0 and ask the queue (from #2) to be executed.
Solution #2: Server-side queue, client-initiated fetch
After each hole (or stroke made by the player,) the client will ask the server if any friends changed their status, if the player got any invites, etc.. If so, the server will tell the client what friend changed their status, who sent an invite, etc. If nothing happened, the server will tell the client that nothing happened. After a response from the server has been received, the client will then move on to loading the next hole/stoke.
(To avoid queues building up and wasting memory when players [x] out of their clients, never fetching their updates from the server, any server queue that is older than 3 mins will be deleted. If the user then requests his/her queue, then it will start from scratch, checking every friend's status.)