@@ -302,7 +302,9 @@ FileHandle::TransferData::~TransferData() { |
302 | 302 | if (fd_ > 0) { |
303 | 303 | uv_fs_t close_req; |
304 | 304 | CHECK_NE(fd_, -1); |
| 305 | + FS_SYNC_TRACE_BEGIN(close); |
305 | 306 | CHECK_EQ(0, uv_fs_close(nullptr, &close_req, fd_, nullptr)); |
| 307 | + FS_SYNC_TRACE_END(close); |
306 | 308 | uv_fs_req_cleanup(&close_req); |
307 | 309 | } |
308 | 310 | } |
@@ -327,7 +329,9 @@ inline void FileHandle::Close() { |
327 | 329 | if (closed_ || closing_) return; |
328 | 330 | uv_fs_t req; |
329 | 331 | CHECK_NE(fd_, -1); |
| 332 | + FS_SYNC_TRACE_BEGIN(close); |
330 | 333 | int ret = uv_fs_close(env()->event_loop(), &req, fd_, nullptr); |
| 334 | + FS_SYNC_TRACE_END(close); |
331 | 335 | uv_fs_req_cleanup(&req); |
332 | 336 |
|
333 | 337 | struct err_detail { int ret; int fd; }; |
@@ -460,7 +464,10 @@ MaybeLocal<Promise> FileHandle::ClosePromise() { |
460 | 464 |
|
461 | 465 | CloseReq* req = new CloseReq(env(), close_req_obj, promise, object()); |
462 | 466 | auto AfterClose = uv_fs_callback_t{[](uv_fs_t* req) { |
463 | | - BaseObjectPtr<CloseReq> close(CloseReq::from_req(req)); |
| 467 | + CloseReq* req_wrap = CloseReq::from_req(req); |
| 468 | + FS_ASYNC_TRACE_END1( |
| 469 | + req->fs_type, req_wrap, "result", static_cast<int>(req->result)) |
| 470 | + BaseObjectPtr<CloseReq> close(req_wrap); |
464 | 471 | CHECK(close); |
465 | 472 | close->file_handle()->AfterClose(); |
466 | 473 | if (!close->env()->can_call_into_js()) return; |
@@ -474,6 +481,7 @@ MaybeLocal<Promise> FileHandle::ClosePromise() { |
474 | 481 | } |
475 | 482 | }}; |
476 | 483 | CHECK_NE(fd_, -1); |
| 484 | + FS_ASYNC_TRACE_BEGIN0(UV_FS_CLOSE, req) |
477 | 485 | int ret = req->Dispatch(uv_fs_close, fd_, AfterClose); |
478 | 486 | if (ret < 0) { |
479 | 487 | req->Reject(UVException(isolate, ret, "close")); |
@@ -569,7 +577,7 @@ int FileHandle::ReadStart() { |
569 | 577 | read_wrap->buffer_ = EmitAlloc(recommended_read); |
570 | 578 |
|
571 | 579 | current_read_ = std::move(read_wrap); |
572 | | - |
| 580 | + FS_ASYNC_TRACE_BEGIN0(UV_FS_READ, current_read_.get()) |
573 | 581 | current_read_->Dispatch(uv_fs_read, |
574 | 582 | fd_, |
575 | 583 | ¤t_read_->buffer_, |
@@ -579,6 +587,8 @@ int FileHandle::ReadStart() { |
579 | 587 | FileHandle* handle; |
580 | 588 | { |
581 | 589 | FileHandleReadWrap* req_wrap = FileHandleReadWrap::from_req(req); |
| 590 | + FS_ASYNC_TRACE_END1( |
| 591 | + req->fs_type, req_wrap, "result", static_cast<int>(req->result)) |
582 | 592 | handle = req_wrap->file_handle_; |
583 | 593 | CHECK_EQ(handle->current_read_.get(), req_wrap); |
584 | 594 | } |
@@ -652,9 +662,12 @@ int FileHandle::DoShutdown(ShutdownWrap* req_wrap) { |
652 | 662 | FileHandleCloseWrap* wrap = static_cast<FileHandleCloseWrap*>(req_wrap); |
653 | 663 | closing_ = true; |
654 | 664 | CHECK_NE(fd_, -1); |
| 665 | + FS_ASYNC_TRACE_BEGIN0(UV_FS_CLOSE, wrap) |
655 | 666 | wrap->Dispatch(uv_fs_close, fd_, uv_fs_callback_t{[](uv_fs_t* req) { |
656 | 667 | FileHandleCloseWrap* wrap = static_cast<FileHandleCloseWrap*>( |
657 | 668 | FileHandleCloseWrap::from_req(req)); |
| 669 | + FS_ASYNC_TRACE_END1( |
| 670 | + req->fs_type, wrap, "result", static_cast<int>(req->result)) |
658 | 671 | FileHandle* handle = static_cast<FileHandle*>(wrap->stream()); |
659 | 672 | handle->AfterClose(); |
660 | 673 |
|
|