public override void ReleaseItemExclusive()

in src/DynamoDBSessionStateStore.cs [648:672]


        public override void ReleaseItemExclusive(HttpContext context, string sessionId, object lockId)
        {
            LogInfo("ReleaseItemExclusive", sessionId, lockId, context);

            Document doc = this._table.GetItem(GetHashKey(sessionId), CONSISTENT_READ_GET);
            if (doc == null)
            {
                LogError("ReleaseItemExclusive Failed to retrieve state for session id: " + sessionId, sessionId, lockId, context);
                return;
            }

            var expiration = DateTime.Now.Add(this._timeout);
            doc[ATTRIBUTE_LOCKED] = false;
            doc[ATTRIBUTE_EXPIRES] = expiration;
            SetTTLAttribute(doc, expiration);

            Document expected = new Document();
            expected[ATTRIBUTE_LOCK_ID] = lockId.ToString();

            try
            {
                this._table.UpdateItem(doc, new UpdateItemOperationConfig() { Expected = expected });
            }
            catch (ConditionalCheckFailedException) { LogInfo("(ReleaseItemExclusive) Conditional check failed for update.", sessionId, context); }
        }