Add reference for threadKilledFailure

This commit is contained in:
Fabio Labella 2023-02-21 13:42:04 +00:00
parent 78153f6f45
commit 8bb93a4ede
2 changed files with 12 additions and 4 deletions

View File

@ -78,11 +78,12 @@ tlsSignedCertRef = lookupDeclRef "io2.Tls.SignedCert"
tlsPrivateKeyRef = lookupDeclRef "io2.Tls.PrivateKey"
runtimeFailureRef, arithmeticFailureRef, miscFailureRef, stmFailureRef :: Reference
runtimeFailureRef, arithmeticFailureRef, miscFailureRef, stmFailureRef, threadKilledFailureRef :: Reference
runtimeFailureRef = lookupDeclRef "io2.RuntimeFailure"
arithmeticFailureRef = lookupDeclRef "io2.ArithmeticFailure"
miscFailureRef = lookupDeclRef "io2.MiscFailure"
stmFailureRef = lookupDeclRef "io2.STMFailure"
threadKilledFailureRef = lookupDeclRef "io2.ThreadKilledFailure"
fileModeRef, filePathRef, bufferModeRef, seekModeRef, seqViewRef :: Reference
fileModeRef = lookupDeclRef "io2.FileMode"
@ -184,7 +185,8 @@ builtinDataDecls = rs1 ++ rs
(v "io2.RuntimeFailure", runtimeFailure),
(v "io2.ArithmeticFailure", arithmeticFailure),
(v "io2.MiscFailure", miscFailure),
(v "io2.STMFailure", stmFailure)
(v "io2.STMFailure", stmFailure),
(v "io2.ThreadKilledFailure", threadKilledFailure)
] of
Right a -> a
Left e -> error $ "builtinDataDecls: " <> show e
@ -363,6 +365,13 @@ builtinDataDecls = rs1 ++ rs
[]
[]
threadKilledFailure =
DataDeclaration
(Unique "replace-this-with-proper-id")
()
[]
[]
stdhnd =
DataDeclaration
(Unique "67bf7a8e517cbb1e9f42bc078e35498212d3be3c")

View File

@ -521,9 +521,8 @@ encodeExn ustk bstk (Left exn) = do
(Rf.stmFailureRef, disp be, unitValue)
| Just (be :: BlockedIndefinitelyOnMVar) <- fromException exn =
(Rf.ioFailureRef, disp be, unitValue)
-- TODO arithmeticFailureRef is a placeholder for the upcoming threadKilledRef
| Just (ie :: AsyncException) <- fromException exn =
(Rf.arithmeticFailureRef, disp ie, unitValue)
(Rf.threadKilledFailureRef, disp ie, unitValue)
| otherwise = (Rf.miscFailureRef, disp exn, unitValue)
eval ::