Remove subtle dependencies
There was a very subtle dependency on the method used to allocate a session
id and how that session id was stored. If the session id wasn't stored
in the same synchronized block where the allocation method was called, it
could have been possible to duplicate session ids. Instead of requiring
callers of the allocation method to know that the value must be stored
in a particular way, maintain a separate set of allocated session ids
that is updated by the allocation method and prevents any potential race
conditions.
Change-Id: Ibd793b3851bf1a994e00d86f621180cac598b86e
Fixes:
30089638