| 1321 | } |
| 1322 | |
| 1323 | Future<Void> doKillCursorsRun(Reference<ExtMsgKillCursors> msg, Reference<ExtConnection> ec) { |
| 1324 | int64_t* ptr = msg->cursorIDs; |
| 1325 | |
| 1326 | // FIXME: I'm not quite sure what the contract around the memory owned by |
| 1327 | // BufferedConnection is. So do this copy for now to be conservative. |
| 1328 | int32_t numberOfCursorIDs = msg->numberOfCursorIDs; |
| 1329 | |
| 1330 | while (numberOfCursorIDs--) { |
| 1331 | Cursor::pluck(ec->cursors[*ptr++]); |
| 1332 | } |
| 1333 | |
| 1334 | return Future<Void>(Void()); |
| 1335 | } |
| 1336 | |
| 1337 | Future<Void> ExtMsgKillCursors::run(Reference<ExtConnection> ec) { |
| 1338 | return doKillCursorsRun(Reference<ExtMsgKillCursors>::addRef(this), ec); |