600 {
601 ParallelLoopResult result = default(ParallelLoopResult);
603 {
604 result._completed = true;
605 return result;
606 }
611 OperationCanceledException
oce =
null;
613 {
616 }, (object?)null));
618 if (ParallelEtwProvider.Log.IsEnabled())
619 {
622 }
623 try
624 {
625 try
626 {
628 {
630 {
632 }
635 {
636 return;
637 }
638 if (ParallelEtwProvider.Log.IsEnabled())
639 {
640 ParallelEtwProvider.Log.ParallelFork(TaskScheduler.Current.Id,
Task.CurrentId.GetValueOrDefault(),
forkJoinContextID);
641 }
643 bool flag = false;
644 try
645 {
648 {
650 }
652 {
655 {
657 flag = true;
658 }
659 }
661 do
662 {
663 if (body != null)
664 {
666 {
668 {
669 break;
670 }
672 }
673 }
675 {
677 {
678 parallelLoopState.CurrentIteration =
num3;
680 }
681 }
682 else
683 {
685 {
686 parallelLoopState.CurrentIteration =
num4;
688 }
689 }
691 {
693 break;
694 }
695 }
697 }
699 {
702 }
703 finally
704 {
706 {
708 }
709 if (ParallelEtwProvider.Log.IsEnabled())
710 {
711 ParallelEtwProvider.Log.ParallelJoin(TaskScheduler.Current.Id,
Task.CurrentId.GetValueOrDefault(),
forkJoinContextID);
712 }
713 }
715 }
716 finally
717 {
719 {
721 }
722 }
724 {
726 }
727 }
728 catch (AggregateException
ex)
729 {
731 }
732 finally
733 {
737 {
739 }
740 if (ParallelEtwProvider.Log.IsEnabled())
741 {
744 ParallelEtwProvider.Log.ParallelLoopEnd(TaskScheduler.Current.Id,
Task.CurrentId.GetValueOrDefault(),
forkJoinContextID, num);
745 }
746 }
747 return result;
748 }
static int ComputeTimeoutPoint(int timeoutLength)
static int s_forkJoinContextID
static void ThrowSingleCancellationExceptionOrOtherException(ICollection exceptions, CancellationToken cancelToken, Exception otherException)
static bool CheckTimeoutReached(int timeoutOccursAt)