| 310 | } |
| 311 | |
| 312 | CUresult XEventQuery(CUevent event) |
| 313 | { |
| 314 | XDEBG("XEventQuery(event: %p)", event); |
| 315 | if (event == nullptr) return Driver::EventQuery(event); |
| 316 | auto xevent = g_events.Get(event, nullptr); |
| 317 | if (xevent == nullptr) return Driver::EventQuery(event); |
| 318 | // If the event is not recorded on an XQueue, directly query from CUDA driver. |
| 319 | if (xevent->GetXQueueHandle() == 0) return Driver::EventQuery(event); |
| 320 | |
| 321 | auto state = xevent->GetState(); |
| 322 | if (state >= kCommandStateCompleted) return CUDA_SUCCESS; |
| 323 | return CUDA_ERROR_NOT_READY; |
| 324 | } |
| 325 | |
| 326 | CUresult XEventSynchronize(CUevent event) |
| 327 | { |
nothing calls this directly
no test coverage detected