| 145 | } |
| 146 | |
| 147 | std::future<sample_result> |
| 148 | quantum_platform::enqueueAsyncTask(const std::size_t qpu_id, |
| 149 | KernelExecutionTask &task) { |
| 150 | std::promise<sample_result> promise; |
| 151 | auto f = promise.get_future(); |
| 152 | QuantumTask wrapped = detail::make_copyable_function( |
| 153 | [p = std::move(promise), t = task]() mutable { |
| 154 | auto counts = t(); |
| 155 | p.set_value(counts); |
| 156 | }); |
| 157 | |
| 158 | platformQPUs[qpu_id]->enqueue(wrapped); |
| 159 | return f; |
| 160 | } |
| 161 | |
| 162 | void quantum_platform::enqueueAsyncTask(const std::size_t qpu_id, |
| 163 | std::function<void()> &f) { |
no test coverage detected