Exemplo n.º 1
0
        // start a long tail call on the 1st grain by calling into the 2nd grain
        public async Task <int> TailCall_Caller(IConcurrentReentrantGrain another, bool doCW)
        {
            logger.LogInformation("TailCall_Caller");
            if (doCW)
            {
                int i = await another.TailCall_Called();

                return(i);
            }
            return(await another.TailCall_Called());
        }
Exemplo n.º 2
0
 // start a long tail call on the 1st grain by calling into the 2nd grain 
 public async Task<int> TailCall_Caller(IConcurrentReentrantGrain another, bool doCW)
 {
     logger.Info("TailCall_Caller");
     if (doCW)
     {
         int i = await another.TailCall_Called();
         return i;
     }
     return await another.TailCall_Called();
 }
Exemplo n.º 3
0
 // calls into the 1st grain while the tail call (TailCall_Caller) is not resolved yet.
 // if tail call optimization is working, this call should go in (the grain should be considered not executing request).
 public Task<int> TailCall_Resolver(IConcurrentReentrantGrain another)
 {
     logger.Info("TailCall_Resolver");
     return another.TailCall_Resolve();
 }
Exemplo n.º 4
0
 // calls into the 1st grain while the tail call (TailCall_Caller) is not resolved yet.
 // if tail call optimization is working, this call should go in (the grain should be considered not executing request).
 public Task <int> TailCall_Resolver(IConcurrentReentrantGrain another)
 {
     logger.LogInformation("TailCall_Resolver");
     return(another.TailCall_Resolve());
 }