namespace Semmle.Util
{
///
/// An instance of this class maintains a shared reference to an object.
/// This makes it possible for several different parts of the code to
/// share access to an object that can change (that is, they all want
/// to refer to the same object, but the object to which they jointly
/// refer may vary over time).
///
/// The type of the shared object.
public sealed class SharedReference where T : class
{
///
/// The shared object to which different parts of the code want to refer.
///
public T Obj { get; set; }
}
}