@@ -500,6 +500,9 @@ type BackgroundCompiler
500500 Activity.Tags.cache, cache.ToString()
501501 |]
502502
503+ let! ct = Async.CancellationToken
504+ use _ = Cancellable.UsingToken( ct)
505+
503506 if cache then
504507 let hash = sourceText.GetHashCode() |> int64
505508
@@ -541,6 +544,9 @@ type BackgroundCompiler
541544 " BackgroundCompiler.GetBackgroundParseResultsForFileInProject"
542545 [| Activity.Tags.fileName, fileName; Activity.Tags.userOpName, userOpName |]
543546
547+ let! ct = NodeCode.CancellationToken
548+ use _ = Cancellable.UsingToken( ct)
549+
544550 let! builderOpt , creationDiags = getOrCreateBuilder ( options, userOpName)
545551
546552 match builderOpt with
@@ -690,6 +696,9 @@ type BackgroundCompiler
690696 Activity.Tags.userOpName, userOpName
691697 |]
692698
699+ let! ct = NodeCode.CancellationToken
700+ use _ = Cancellable.UsingToken( ct)
701+
693702 let! cachedResults =
694703 node {
695704 let! builderOpt , creationDiags = getAnyBuilder ( options, userOpName)
@@ -732,6 +741,9 @@ type BackgroundCompiler
732741 Activity.Tags.userOpName, userOpName
733742 |]
734743
744+ let! ct = NodeCode.CancellationToken
745+ use _ = Cancellable.UsingToken( ct)
746+
735747 let! builderOpt , creationDiags = getOrCreateBuilder ( options, userOpName)
736748
737749 match builderOpt with
@@ -760,6 +772,9 @@ type BackgroundCompiler
760772 Activity.Tags.userOpName, userOpName
761773 |]
762774
775+ let! ct = NodeCode.CancellationToken
776+ use _ = Cancellable.UsingToken( ct)
777+
763778 let! builderOpt , creationDiags = getOrCreateBuilder ( options, userOpName)
764779
765780 match builderOpt with
@@ -815,6 +830,9 @@ type BackgroundCompiler
815830 Activity.Tags.userOpName, userOpName
816831 |]
817832
833+ let! ct = NodeCode.CancellationToken
834+ use _ = Cancellable.UsingToken( ct)
835+
818836 let! builderOpt , _ = getOrCreateBuilder ( options, userOpName)
819837
820838 match builderOpt with
@@ -834,6 +852,9 @@ type BackgroundCompiler
834852 Activity.Tags.userOpName, userOpName
835853 |]
836854
855+ let! ct = NodeCode.CancellationToken
856+ use _ = Cancellable.UsingToken( ct)
857+
837858 let! builderOpt , creationDiags = getOrCreateBuilder ( options, userOpName)
838859
839860 match builderOpt with
@@ -974,6 +995,9 @@ type BackgroundCompiler
974995 Activity.Tags.userOpName, userOpName
975996 |]
976997
998+ let! ct = NodeCode.CancellationToken
999+ use _ = Cancellable.UsingToken( ct)
1000+
9771001 let! builderOpt , _ = getOrCreateBuilder ( options, userOpName)
9781002
9791003 match builderOpt with
@@ -1016,6 +1040,9 @@ type BackgroundCompiler
10161040 /// Parse and typecheck the whole project (the implementation, called recursively as project graph is evaluated)
10171041 member private _.ParseAndCheckProjectImpl ( options , userOpName ) =
10181042 node {
1043+ let! ct = NodeCode.CancellationToken
1044+ use _ = Cancellable.UsingToken( ct)
1045+
10191046 let! builderOpt , creationDiags = getOrCreateBuilder ( options, userOpName)
10201047
10211048 match builderOpt with
@@ -1149,6 +1176,9 @@ type BackgroundCompiler
11491176 // Do we assume .NET Framework references for scripts?
11501177 let assumeDotNetFramework = defaultArg assumeDotNetFramework true
11511178
1179+ let! ct = Cancellable.token ()
1180+ use _ = Cancellable.UsingToken( ct)
1181+
11521182 let extraFlags =
11531183 if previewEnabled then
11541184 [| " --langversion:preview" |]
@@ -1269,6 +1299,9 @@ type BackgroundCompiler
12691299 |]
12701300
12711301 async {
1302+ let! ct = Async.CancellationToken
1303+ use _ = Cancellable.UsingToken( ct)
1304+
12721305 let! ct = Async.CancellationToken
12731306 // If there was a similar entry (as there normally will have been) then re-establish an empty builder . This
12741307 // is a somewhat arbitrary choice - it will have the effect of releasing memory associated with the previous
@@ -1514,6 +1547,9 @@ type FSharpChecker
15141547 use _ = Activity.start " FSharpChecker.Compile" [| Activity.Tags.userOpName, _ userOpName |]
15151548
15161549 async {
1550+ let! ct = Async.CancellationToken
1551+ use _ = Cancellable.UsingToken( ct)
1552+
15171553 let ctok = CompilationThreadToken()
15181554 return CompileHelpers.compileFromArgs ( ctok, argv, legacyReferenceResolver, None, None)
15191555 }
@@ -1633,6 +1669,9 @@ type FSharpChecker
16331669 let userOpName = defaultArg userOpName " Unknown"
16341670
16351671 node {
1672+ let! ct = NodeCode.CancellationToken
1673+ use _ = Cancellable.UsingToken( ct)
1674+
16361675 if fastCheck <> Some true || not captureIdentifiersWhenParsing then
16371676 return ! backgroundCompiler.FindReferencesInFile( fileName, options, symbol, canInvalidateProject, userOpName)
16381677 else
0 commit comments