[Add] VContainer

This commit is contained in:
2026-04-07 04:51:37 +07:00
parent 76562726ec
commit 4f9b878775
193 changed files with 8036 additions and 0 deletions
@@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
namespace VContainer.Internal
{
sealed class CompositeDisposable : IDisposable
{
readonly Stack<IDisposable> disposables = new Stack<IDisposable>();
public void Dispose()
{
IDisposable disposable;
do
{
lock (disposables)
{
disposable = disposables.Count > 0
? disposables.Pop()
: null;
}
disposable?.Dispose();
} while (disposable != null);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void Add(IDisposable disposable)
{
lock (disposables)
{
disposables.Push(disposable);
}
}
}
}