Exemple #1
0
        static void Main(string[] args)
        {
            var strVault = new BasicVault <string>(string.Empty);

            Thread t1 = new Thread(() =>
            {
                Thread.SpinWait(50000);
                using var lck = strVault.SpinLock();
                lck.Value    += "Hello from thread 1, DotNetVault!  ";
            });
            Thread t2 = new Thread(() =>
            {
                using var lck = strVault.SpinLock();
                lck.Value    += "Hello from thread 2, DotNetVault!  ";
            });

            t1.Start();
            t2.Start();

            t2.Join();
            t1.Join();

            string finalResult = strVault.CopyCurrentValue(TimeSpan.FromMilliseconds(100));

            Console.WriteLine(finalResult);
        }
Exemple #2
0
        static void TestNoBasicVaultForStringBuilder()
        {
            BasicVault <string> bv = new BasicVault <string>("Hi mom", TimeSpan.FromSeconds(2));

            //BasicVault<StringBuilder> bv1 = new BasicVault<StringBuilder>(new StringBuilder("Hi mom"), TimeSpan.FromSeconds(2));
            using var l = bv.SpinLock();
            Console.WriteLine(l.Value.ToString());
        }
 public static void DoTest()
 {
     BasicVault <BvIllegalRefExprTestCase1> vault = new BasicVault <BvIllegalRefExprTestCase1>(new BvIllegalRefExprTestCase1("Foobar"));
     {
         using var lck = vault.SpinLock();
         ref var toodles = ref lck.Value;
         Console.WriteLine(toodles.ToString());
     }
Exemple #4
0
        public static void TestUriIsVs()
        {
            BasicVault <string> bvs = new BasicVault <string>("Hi mom", TimeSpan.FromSeconds(2));

            //BasicVault<StringBuilder> bvsb = new BasicVault<StringBuilder>(new StringBuilder(), TimeSpan.FromSeconds(2));
            using (var lck = bvs.SpinLock())
            {
                Console.WriteLine(lck.Value);
            }
        }
Exemple #5
0
        public static void TestBasicVaultOfNullableNotUnmanagedValueType()
        {
            BasicVault <NotUnmanagedButVaultSafeValueType> bv = new BasicVault <NotUnmanagedButVaultSafeValueType>(new NotUnmanagedButVaultSafeValueType("Chris"));

            using (var lck = bv.Lock())
            {
                Console.WriteLine(lck.Value.Name);
            }

            var thisTimeWithJohn = CreateBasicVault((string s) => new NotUnmanagedButVaultSafeValueType(s));

            using (var lck = thisTimeWithJohn.Lock())
            {
                Console.WriteLine(lck.Value.Name);
            }

            //BUG 49 fix verification
            BasicVault <NotUnmanagedButVaultSafeValueType?> nullableVb = new BasicVault <NotUnmanagedButVaultSafeValueType?>(null, TimeSpan.FromSeconds(2));

            using (var lck = nullableVb.Lock())
            {
                Console.WriteLine(lck.Value?.Name ?? "NULL");
                lck.Value = new NotUnmanagedButVaultSafeValueType("Atticus");
            }

            //Bug 49 fix verification as applied to Type Argument
            BasicVault <NotUnmanagedButVaultSafeValueType?> nullableVb2 = CreateBasicVault((string s) =>
                                                                                           (NotUnmanagedButVaultSafeValueType?)new NotUnmanagedButVaultSafeValueType(s));

            using (var lck = nullableVb2.SpinLock())
            {
                Console.WriteLine(lck.Value?.ToString() ?? "NULL");
                lck.Value = null;
                Console.WriteLine(lck.Value?.ToString() ?? "NULL");
            }
        }