Example #1
0
 public DeadlockWithNekaraLockAndAsync()
 {
     this.nekara = RuntimeEnvironment.Client;
     this.nekara.Api.CreateSession();
     this.lck      = new Nekara.Models.Lock(0);
     this.bugFound = false;
     this.x        = 0;
 }
Example #2
0
            public void Reset()
            {
                this.nekara.Api.CreateSession();

                this.x   = 0;
                this.lck = new Nekara.Models.Lock(0);
                this.t2  = false;
                this.t3  = false;
            }
        public static void Run()
        {
            // initialize all relevant state
            lck = new Nekara.Models.Lock(0);
            x   = 0;

            nekara.CreateTask();
            Task.Run(() => Foo());

            nekara.CreateTask();
            Task.Run(() => Bar());
        }
Example #4
0
        public void Racebetween2Tasks()
        {
            while (!bugfound)
            {
                NekaraManagedClient nekara = RuntimeEnvironment.Client;
                nekara.Api.CreateSession();

                // initialize all relevant state
                lck = new Nekara.Models.Lock(0);
                x   = 0;

                nekara.Api.CreateTask();
                var T1 = Task.Run(() => Foo());

                nekara.Api.CreateTask();
                var T2 = Task.Run(() => Bar());


                nekara.Api.WaitForMainTask();
                Task.WaitAll(T1, T2);
            }
        }