System.Web.SessionState.SessionInProcHandler.RemoveItem C# (CSharp) Method

RemoveItem() public method

public RemoveItem ( HttpContext context, string id, object lockId, System.Web.SessionState.SessionStateStoreData item ) : void
context HttpContext
id string
lockId object
item System.Web.SessionState.SessionStateStoreData
return void
		public override void RemoveItem (HttpContext context,
						 string id,
						 object lockId,
						 SessionStateStoreData item)
		{
			EnsureGoodId (id, true);
			string CacheId = CachePrefix + id;
			Cache cache = HttpRuntime.InternalCache;
			InProcSessionItem inProcItem = cache [CacheId] as InProcSessionItem;

			if (inProcItem == null || lockId == null || lockId.GetType() != typeof(Int32) || inProcItem.lockId != (Int32)lockId)
				return;

			bool locked = false;
			try {
				if (inProcItem.rwlock.TryEnterWriteLock (lockAcquireTimeout))
					locked = true;
				else
					throw new ApplicationException ("Failed to acquire lock after");
				cache.Remove (CacheId);
			} catch {
				throw;
			} finally {
				if (locked)
					inProcItem.rwlock.ExitWriteLock ();
			}
		}