@@ -302,7 +302,9 @@ FileHandle::TransferData::~TransferData() {
302302 if (fd_ > 0 ) {
303303 uv_fs_t close_req;
304304 CHECK_NE (fd_, -1 );
305+ FS_SYNC_TRACE_BEGIN (close);
305306 CHECK_EQ (0 , uv_fs_close (nullptr , &close_req, fd_, nullptr ));
307+ FS_SYNC_TRACE_END (close);
306308 uv_fs_req_cleanup (&close_req);
307309 }
308310}
@@ -327,7 +329,9 @@ inline void FileHandle::Close() {
327329 if (closed_ || closing_) return ;
328330 uv_fs_t req;
329331 CHECK_NE (fd_, -1 );
332+ FS_SYNC_TRACE_BEGIN (close);
330333 int ret = uv_fs_close (env ()->event_loop (), &req, fd_, nullptr );
334+ FS_SYNC_TRACE_END (close);
331335 uv_fs_req_cleanup (&req);
332336
333337 struct err_detail { int ret; int fd; };
@@ -460,7 +464,10 @@ MaybeLocal<Promise> FileHandle::ClosePromise() {
460464
461465 CloseReq* req = new CloseReq (env (), close_req_obj, promise, object ());
462466 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);
464471 CHECK (close);
465472 close->file_handle ()->AfterClose ();
466473 if (!close->env ()->can_call_into_js ()) return ;
@@ -474,6 +481,7 @@ MaybeLocal<Promise> FileHandle::ClosePromise() {
474481 }
475482 }};
476483 CHECK_NE (fd_, -1 );
484+ FS_ASYNC_TRACE_BEGIN0 (UV_FS_CLOSE, req)
477485 int ret = req->Dispatch (uv_fs_close, fd_, AfterClose);
478486 if (ret < 0 ) {
479487 req->Reject (UVException (isolate, ret, " close" ));
@@ -569,7 +577,7 @@ int FileHandle::ReadStart() {
569577 read_wrap->buffer_ = EmitAlloc (recommended_read);
570578
571579 current_read_ = std::move (read_wrap);
572-
580+ FS_ASYNC_TRACE_BEGIN0 (UV_FS_READ, current_read_. get ())
573581 current_read_->Dispatch (uv_fs_read,
574582 fd_,
575583 ¤t_read_->buffer_ ,
@@ -579,6 +587,8 @@ int FileHandle::ReadStart() {
579587 FileHandle* handle;
580588 {
581589 FileHandleReadWrap* req_wrap = FileHandleReadWrap::from_req (req);
590+ FS_ASYNC_TRACE_END1 (
591+ req->fs_type , req_wrap, " result" , static_cast <int >(req->result ))
582592 handle = req_wrap->file_handle_ ;
583593 CHECK_EQ (handle->current_read_ .get (), req_wrap);
584594 }
@@ -652,9 +662,12 @@ int FileHandle::DoShutdown(ShutdownWrap* req_wrap) {
652662 FileHandleCloseWrap* wrap = static_cast <FileHandleCloseWrap*>(req_wrap);
653663 closing_ = true ;
654664 CHECK_NE (fd_, -1 );
665+ FS_ASYNC_TRACE_BEGIN0 (UV_FS_CLOSE, wrap)
655666 wrap->Dispatch (uv_fs_close, fd_, uv_fs_callback_t {[](uv_fs_t * req) {
656667 FileHandleCloseWrap* wrap = static_cast <FileHandleCloseWrap*>(
657668 FileHandleCloseWrap::from_req (req));
669+ FS_ASYNC_TRACE_END1 (
670+ req->fs_type , wrap, " result" , static_cast <int >(req->result ))
658671 FileHandle* handle = static_cast <FileHandle*>(wrap->stream ());
659672 handle->AfterClose ();
660673
0 commit comments