| 189 | } |
| 190 | |
| 191 | Future<Void> start(Database const& cx) override { |
| 192 | if (!success) { |
| 193 | return Void(); |
| 194 | } |
| 195 | auto db = cx.getPtr(); |
| 196 | db->addref(); |
| 197 | Reference<IDatabase> database(new ThreadSafeDatabase(db)); |
| 198 | Promise<bool> promise; |
| 199 | auto f = promise.getFuture(); |
| 200 | keepAlive(f, database); |
| 201 | workloadImpl->start(reinterpret_cast<FDBDatabase*>(database.getPtr()), |
| 202 | GenericPromise<bool>(new FDBPromiseImpl(promise))); |
| 203 | return assertTrue(LiteralStringRef("start"), f); |
| 204 | } |
| 205 | Future<bool> check(Database const& cx) override { |
| 206 | if (!success) { |
| 207 | return false; |