Hello society,
Bad news to begin with - sorry.

Something like this will deadlock (pseudo language):

class ListProcessor : IValueProcessor<List<TIn>, List<TOut>>
{
     IValueProcessor<TIn, TOut> _itemProcessor;
     ILog _unsuccesfulEnd;

     public List<TOut> Process(List<TIn> input)
     {
         return input.AsParallel().Select(TryExecute)
     }

     <enumerable of TOut> TryExecute<TIn>(input)
     {
         try
         {
              return new[]{_itemProcessor.Process(input)}
         }
         catch{return new[]}
     }
}

class Test:
   expected:
      itemProcessor.Expect(Process(1)).Return("1")
      itemProcessor.Expect(Process(2)).Throw(ex)
      _unsuccesfulEnd.Error(ex)
      itemProcessor.Expect(Process(3)).Throw()
      _unsuccesfulEnd.Error(ex)
      itemProcessor.Expect(Process(4)).Return("4")
      repository.Reply()
      
      var result = [1,2,3,4].Select(sut.Process) 

expected: ["1", "4"]

Actual result is the infinitely hanging test.

Will give it another try try to debug tomorrow, but it doesn't look like a 
simple one.

Any help appreciated.

Regards,
Igor

-- 
You received this message because you are subscribed to the Google Groups 
"Rhino.Mocks" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/rhinomocks.
For more options, visit https://groups.google.com/d/optout.

Reply via email to