[llvm] [libsycl] implement methods of synchronization in event and queue classes (PR #205860)

Sergey Semenov via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 3 11:18:57 PDT 2026


================
@@ -22,4 +25,30 @@ void event::wait(const std::vector<event> &EventList) {
 
 void event::wait() { impl->wait(); }
 
+void event::wait_and_throw() { impl->waitAndThrow(); }
+
+void event::wait_and_throw(const std::vector<event> &EventList) {
+  for (auto E : EventList) {
+    E.wait_and_throw();
+  }
+}
+
+std::vector<event> event::get_wait_list() {
+  const auto &WaitList = impl->getWaitList();
+  std::vector<event> Result;
+  Result.reserve(WaitList.size());
+
+  for (const auto &EventImpl : WaitList)
+    Result.push_back(detail::createSyclObjFromImpl<event>(EventImpl));
+
+  return Result;
+}
+
+template <typename Param>
+typename detail::is_event_profiling_info_desc_t<Param>
+event::get_profiling_info() const {
+  throw sycl::exception(make_error_code(errc::feature_not_supported),
+                        "Profiling features are not supported.");
+}
----------------
sergey-semenov wrote:

If it's intentional, what's the point of providing the function body at all? I would prefer to see a compilation or runtime error here while this is not implemented, not an undefined reference one.

https://github.com/llvm/llvm-project/pull/205860


More information about the llvm-commits mailing list