| 246 | public: |
| 247 | template <typename func> |
| 248 | void submit_to(int i, func &&f, bool always_async = false) { |
| 249 | ceph_assert(i < MAX_EVENTCENTER && global_centers); |
| 250 | EventCenter *c = global_centers->centers[i]; |
| 251 | ceph_assert(c); |
| 252 | if (always_async) { |
| 253 | C_submit_event<func> *event = new C_submit_event<func>(std::move(f), true); |
| 254 | c->dispatch_event_external(event); |
| 255 | } else if (c->in_thread()) { |
| 256 | f(); |
| 257 | return; |
| 258 | } else { |
| 259 | C_submit_event<func> event(std::move(f), false); |
| 260 | c->dispatch_event_external(&event); |
| 261 | event.wait(); |
| 262 | } |
| 263 | }; |
| 264 | }; |
| 265 | |
| 266 | #endif |
no test coverage detected