| 359 | } |
| 360 | |
| 361 | ACTOR static Future<Void> write_impl(int fd, Reference<ErrorInfo> err, StringRef data, int64_t offset) { |
| 362 | state TaskPriority taskID = g_network->getCurrentTask(); |
| 363 | state Promise<Void> p; |
| 364 | state eio_req* r = eio_write(fd, (void*)data.begin(), data.size(), offset, 0, eio_callback, &p); |
| 365 | try { |
| 366 | wait(p.getFuture()); |
| 367 | } catch (...) { |
| 368 | g_network->setCurrentTask(taskID); |
| 369 | eio_cancel(r); |
| 370 | throw; |
| 371 | } |
| 372 | if (r->result != data.size()) |
| 373 | error("WriteError", fd, r, err); |
| 374 | wait(delay(0, taskID)); |
| 375 | return Void(); |
| 376 | } |
| 377 | |
| 378 | ACTOR static Future<Void> truncate_impl(int fd, Reference<ErrorInfo> err, int64_t size) { |
| 379 | state TaskPriority taskID = g_network->getCurrentTask(); |
nothing calls this directly
no test coverage detected