@@ -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) 
10171041member  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