예제 #1
0
        internal void UpdateLastWrittenEtag(Guid?etag)
        {
            if (etag == null)
            {
                return;
            }

            var newEtag = etag.Value.ToByteArray();

            if (lastEtag == null)
            {
                lock (lastEtagLocker)
                {
                    if (lastEtag == null)
                    {
                        lastEtag = new EtagHolder
                        {
                            Bytes = newEtag,
                            Etag  = etag.Value
                        };
                        return;
                    }
                }
            }

            // not the most recent etag
            if (Buffers.Compare(lastEtag.Bytes, newEtag) >= 0)
            {
                return;
            }

            lock (lastEtagLocker)
            {
                // not the most recent etag
                if (Buffers.Compare(lastEtag.Bytes, newEtag) >= 0)
                {
                    return;
                }

                lastEtag = new EtagHolder
                {
                    Etag  = etag.Value,
                    Bytes = newEtag
                };
            }
        }
예제 #2
0
		public void UpdateLastWrittenEtag(Guid? etag)
		{
			if (etag == null)
				return;

			var newEtag = etag.Value.ToByteArray();

			if (lastEtag == null)
			{
				lock (lastEtagLocker)
				{
					if (lastEtag == null)
					{
						lastEtag = new EtagHolder
						{
							Bytes = newEtag,
							Etag = etag.Value
						};
						return;
					}
				}
			}

			// not the most recent etag
			if (Buffers.Compare(lastEtag.Bytes, newEtag) >= 0)
			{
				return;
			}

			lock (lastEtagLocker)
			{
				// not the most recent etag
				if (Buffers.Compare(lastEtag.Bytes, newEtag) >= 0)
				{
					return;
				}

				lastEtag = new EtagHolder
				{
					Etag = etag.Value,
					Bytes = newEtag
				};
			}
		}
예제 #3
0
        public void UpdateLastWrittenEtag(Etag etag)
        {
            if (etag == null)
            {
                return;
            }

            if (lastEtag == null)
            {
                lock (lastEtagLocker)
                {
                    if (lastEtag == null)
                    {
                        lastEtag = new EtagHolder
                        {
                            Etag = etag
                        };
                        return;
                    }
                }
            }

            // not the most recent etag
            if (lastEtag.Etag.CompareTo(etag) >= 0)
            {
                return;
            }

            lock (lastEtagLocker)
            {
                // not the most recent etag
                if (lastEtag.Etag.CompareTo(etag) >= 0)
                {
                    return;
                }

                lastEtag = new EtagHolder
                {
                    Etag = etag,
                };
            }
        }
예제 #4
0
        public void UpdateLastWrittenEtag(Etag etag)
		{
			if (etag == null)
				return;

			if (lastEtag == null)
			{
				lock (lastEtagLocker)
				{
					if (lastEtag == null)
					{
						lastEtag = new EtagHolder
						{
							Etag = etag
						};
						return;
					}
				}
			}

			// not the most recent etag
			if (lastEtag.Etag.CompareTo(etag) >= 0)
			{
				return;
			}

			lock (lastEtagLocker)
			{
				// not the most recent etag
                if (lastEtag.Etag.CompareTo(etag) >= 0)
				{
					return;
				}

				lastEtag = new EtagHolder
				{
					Etag = etag,
				};
			}
		}