Skip to content

Conversation

@cperkinsintel
Copy link
Contributor

https://registry.khronos.org/SYCL/specs/sycl-2020/html/sycl-2020.html#subsubsec:exception.async

According to section 4.13.1.1 ~queue destructor is supposed to call asynchronous exception handler. Presently we do this in ~queue_impl, which isn't exactly compliant with spec, because it's possible that queue_impl may outlive queue because of shared pointer.

This error was discovered in a flaky CTS test ( CMPLRLLVM-69812 ). It is flaky and I have not been able to reproduce the error outside the context of the CTS environment.

… Presently we do this in ~queue_impl, which isn't exactly compliant with spec, because it's possible that queue_impl may outlive queue because of shared pointer.

Signed-off-by: Chris Perkins <[email protected]>
Signed-off-by: Chris Perkins <[email protected]>
Signed-off-by: Chris Perkins <[email protected]>
Signed-off-by: Perkins, Chris <[email protected]>
Signed-off-by: Chris Perkins <[email protected]>
@cperkinsintel
Copy link
Contributor Author

queue often has intermediate instances and having each call the async destructor is not optimal. I added simple tracking of the construction path to a different branch, but that breaks ABI. Plus, the initial comments on the spec clarification over on SYCL-DOC make me think that is an unlikely choice. Closing this for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant