move session examination inside the lock

This commit is contained in:
Luke Pulverenti 2014-03-09 22:40:27 -04:00
parent 9c1ce92c29
commit e3997059d2

View File

@ -175,19 +175,19 @@ namespace MediaBrowser.Server.Implementations.Session
public async Task ReportSessionEnded(Guid sessionId) public async Task ReportSessionEnded(Guid sessionId)
{ {
var session = GetSession(sessionId);
if (session == null)
{
throw new ArgumentException("Session not found");
}
var key = GetSessionKey(session.Client, session.ApplicationVersion, session.DeviceId);
await _sessionLock.WaitAsync(CancellationToken.None).ConfigureAwait(false); await _sessionLock.WaitAsync(CancellationToken.None).ConfigureAwait(false);
try try
{ {
var session = GetSession(sessionId);
if (session == null)
{
throw new ArgumentException("Session not found");
}
var key = GetSessionKey(session.Client, session.ApplicationVersion, session.DeviceId);
SessionInfo removed; SessionInfo removed;
if (_activeConnections.TryRemove(key, out removed)) if (_activeConnections.TryRemove(key, out removed))