예제 #1
0
        protected static IArrayBuffer <T> ToLeakAwareBuffer(IArrayBuffer <T> buffer)
        {
            IResourceLeak leak = ReferenceCounted.LeakDetector.Open(buffer);

            return(leak != null
                ? new LeakAwareByteBuffer <T>(buffer, leak)
                : buffer);
        }
예제 #2
0
        public CompositeByteBuffer(IByteBufferAllocator allocator, int maxNumComponents)
            : base(int.MaxValue)
        {
            Contract.Requires(allocator != null);
            Contract.Requires(maxNumComponents >= 2);

            this.allocator        = allocator;
            this.maxNumComponents = maxNumComponents;
            this.leak             = LeakDetector.Open(this);
        }
예제 #3
0
        public CompositeByteBuffer(IByteBufferAllocator allocator, int maxNumComponents)
            : base(int.MaxValue)
        {
            Contract.Requires(allocator != null);
            Contract.Requires(maxNumComponents >= 2);

            this.allocator = allocator;
            this.maxNumComponents = maxNumComponents;
            this.leak = LeakDetector.Open(this);
        }
예제 #4
0
        public CompositeByteBuffer(IByteBufferAllocator allocator, int maxNumComponents)
            : base(AbstractByteBufferAllocator.DefaultMaxCapacity)
        {
            Contract.Requires(allocator != null);
            Contract.Requires(maxNumComponents >= 2);

            this.allocator        = allocator;
            this.maxNumComponents = maxNumComponents;
            this.leak             = LeakDetector.Open(this);
        }
예제 #5
0
        internal void Report(IResourceLeak resourceLeak)
        {
            string records = resourceLeak.ToString();

            if (!this.reportedLeaks.TryAdd(records, true))
            {
                return;
            }

            Log.Error(records.Length == 0
                ? $"LEAK: {this.resourceType}.Release() was not called before it's garbage-collected."
                : $"LEAK: {this.resourceType}.Release() was not called before it's garbage-collected. {records}");
        }
예제 #6
0
        public CompositeByteBuffer(IByteBufferAllocator allocator, int maxNumComponents, IByteBuffer[] buffers, int offset, int length)
            : base(AbstractByteBufferAllocator.DefaultMaxCapacity)
        {
            Contract.Requires(allocator != null);
            Contract.Requires(maxNumComponents >= 2);

            this.allocator        = allocator;
            this.maxNumComponents = maxNumComponents;
            this.AddComponents0(0, buffers, offset, length);
            this.ConsolidateIfNeeded();
            this.SetIndex(0, this.Capacity);
            this.leak = LeakDetector.Open(this);
        }
예제 #7
0
        public CompositeByteBuffer(
            IByteBufferAllocator allocator, int maxNumComponents, IEnumerable <IByteBuffer> buffers)
            : base(int.MaxValue)
        {
            Contract.Requires(allocator != null);
            Contract.Requires(maxNumComponents >= 2);

            this.allocator        = allocator;
            this.maxNumComponents = maxNumComponents;
            this.AddComponents0(0, buffers);
            this.ConsolidateIfNeeded();
            this.SetIndex(0, this.Capacity);
            this.leak = LeakDetector.Open(this);
        }
예제 #8
0
        public CompositeByteBuffer(
            IByteBufferAllocator allocator, int maxNumComponents, IEnumerable<IByteBuffer> buffers)
            : base(int.MaxValue)
        {
            Contract.Requires(allocator != null);
            Contract.Requires(maxNumComponents >= 2);

            this.allocator = allocator;
            this.maxNumComponents = maxNumComponents;
            this.AddComponents0(0, buffers);
            this.ConsolidateIfNeeded();
            this.SetIndex(0, this.Capacity);
            this.leak = LeakDetector.Open(this);
        }
예제 #9
0
        internal void Report(IResourceLeak resourceLeak)
        {
            string records = resourceLeak.ToString();

            if (this.reportedLeaks.TryAdd(records, true))
            {
                if (records.Length == 0)
                {
                    Logger.Error("LEAK: {}.Release() was not called before it's garbage-collected. " +
                                 "Enable advanced leak reporting to find out where the leak occurred. " +
                                 "To enable advanced leak reporting, " +
                                 "set environment variable {} to {} or set {}.Level in code. " +
                                 "See http://netty.io/wiki/reference-counted-objects.html for more information.", this.resourceType, PropLevel, DetectionLevel.Advanced.ToString().ToLowerInvariant(), StringUtil.SimpleClassName(this));
                }
                else
                {
                    Logger.Error(
                        "LEAK: {}.release() was not called before it's garbage-collected. " +
                        "See http://netty.io/wiki/reference-counted-objects.html for more information.{}", this.resourceType, records);
                }
            }
        }
 internal SimpleLeakAwareByteBuffer(IByteBuffer buf, IResourceLeak leak)
     : base(buf)
 {
     this.leak = leak;
 }
예제 #11
0
 internal LeakAwareByteBuffer(IArrayBuffer <T> buffer, IResourceLeak leak)
     : base(buffer)
 {
     this.leak = leak;
     this.leak.Record();
 }
예제 #12
0
 internal AdvancedLeakAwareByteBuf(IByteBuffer buf, IResourceLeak leak)
     : base(buf)
 {
     this.leak = leak;
 }
 internal AdvancedLeakAwareByteBuf(IByteBuffer buf, IResourceLeak leak)
     : base(buf)
 {
     this.leak = leak;
 }
예제 #14
0
 internal AdvancedLeakAwareArrayBuffer(IArrayBuffer <T> buf, IResourceLeak leak)
     : base(buf)
 {
     this.leak = leak;
 }
 internal AdvancedLeakAwareByteBuffer(IByteBuffer buf, IResourceLeak leak)
     : base(buf, leak)
 {
 }
 internal SimpleLeakAwareByteBuffer(IByteBuffer buf, IResourceLeak leak)
     : base(buf)
 {
     this.leak = leak;
 }