mirror of
https://github.com/zebrajr/node.git
synced 2026-01-15 12:15:26 +00:00
fs: trace more fs api
PR-URL: https://github.com/nodejs/node/pull/45095 Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
This commit is contained in:
@@ -135,7 +135,9 @@ void DirHandle::MemoryInfo(MemoryTracker* tracker) const {
|
||||
inline void DirHandle::GCClose() {
|
||||
if (closed_) return;
|
||||
uv_fs_t req;
|
||||
FS_DIR_SYNC_TRACE_BEGIN(closedir);
|
||||
int ret = uv_fs_closedir(nullptr, &req, dir_, nullptr);
|
||||
FS_DIR_SYNC_TRACE_END(closedir);
|
||||
uv_fs_req_cleanup(&req);
|
||||
closing_ = false;
|
||||
closed_ = true;
|
||||
|
||||
@@ -302,7 +302,9 @@ FileHandle::TransferData::~TransferData() {
|
||||
if (fd_ > 0) {
|
||||
uv_fs_t close_req;
|
||||
CHECK_NE(fd_, -1);
|
||||
FS_SYNC_TRACE_BEGIN(close);
|
||||
CHECK_EQ(0, uv_fs_close(nullptr, &close_req, fd_, nullptr));
|
||||
FS_SYNC_TRACE_END(close);
|
||||
uv_fs_req_cleanup(&close_req);
|
||||
}
|
||||
}
|
||||
@@ -327,7 +329,9 @@ inline void FileHandle::Close() {
|
||||
if (closed_ || closing_) return;
|
||||
uv_fs_t req;
|
||||
CHECK_NE(fd_, -1);
|
||||
FS_SYNC_TRACE_BEGIN(close);
|
||||
int ret = uv_fs_close(env()->event_loop(), &req, fd_, nullptr);
|
||||
FS_SYNC_TRACE_END(close);
|
||||
uv_fs_req_cleanup(&req);
|
||||
|
||||
struct err_detail { int ret; int fd; };
|
||||
@@ -460,7 +464,10 @@ MaybeLocal<Promise> FileHandle::ClosePromise() {
|
||||
|
||||
CloseReq* req = new CloseReq(env(), close_req_obj, promise, object());
|
||||
auto AfterClose = uv_fs_callback_t{[](uv_fs_t* req) {
|
||||
BaseObjectPtr<CloseReq> close(CloseReq::from_req(req));
|
||||
CloseReq* req_wrap = CloseReq::from_req(req);
|
||||
FS_ASYNC_TRACE_END1(
|
||||
req->fs_type, req_wrap, "result", static_cast<int>(req->result))
|
||||
BaseObjectPtr<CloseReq> close(req_wrap);
|
||||
CHECK(close);
|
||||
close->file_handle()->AfterClose();
|
||||
if (!close->env()->can_call_into_js()) return;
|
||||
@@ -474,6 +481,7 @@ MaybeLocal<Promise> FileHandle::ClosePromise() {
|
||||
}
|
||||
}};
|
||||
CHECK_NE(fd_, -1);
|
||||
FS_ASYNC_TRACE_BEGIN0(UV_FS_CLOSE, req)
|
||||
int ret = req->Dispatch(uv_fs_close, fd_, AfterClose);
|
||||
if (ret < 0) {
|
||||
req->Reject(UVException(isolate, ret, "close"));
|
||||
@@ -569,7 +577,7 @@ int FileHandle::ReadStart() {
|
||||
read_wrap->buffer_ = EmitAlloc(recommended_read);
|
||||
|
||||
current_read_ = std::move(read_wrap);
|
||||
|
||||
FS_ASYNC_TRACE_BEGIN0(UV_FS_READ, current_read_.get())
|
||||
current_read_->Dispatch(uv_fs_read,
|
||||
fd_,
|
||||
¤t_read_->buffer_,
|
||||
@@ -579,6 +587,8 @@ int FileHandle::ReadStart() {
|
||||
FileHandle* handle;
|
||||
{
|
||||
FileHandleReadWrap* req_wrap = FileHandleReadWrap::from_req(req);
|
||||
FS_ASYNC_TRACE_END1(
|
||||
req->fs_type, req_wrap, "result", static_cast<int>(req->result))
|
||||
handle = req_wrap->file_handle_;
|
||||
CHECK_EQ(handle->current_read_.get(), req_wrap);
|
||||
}
|
||||
@@ -652,9 +662,12 @@ int FileHandle::DoShutdown(ShutdownWrap* req_wrap) {
|
||||
FileHandleCloseWrap* wrap = static_cast<FileHandleCloseWrap*>(req_wrap);
|
||||
closing_ = true;
|
||||
CHECK_NE(fd_, -1);
|
||||
FS_ASYNC_TRACE_BEGIN0(UV_FS_CLOSE, wrap)
|
||||
wrap->Dispatch(uv_fs_close, fd_, uv_fs_callback_t{[](uv_fs_t* req) {
|
||||
FileHandleCloseWrap* wrap = static_cast<FileHandleCloseWrap*>(
|
||||
FileHandleCloseWrap::from_req(req));
|
||||
FS_ASYNC_TRACE_END1(
|
||||
req->fs_type, wrap, "result", static_cast<int>(req->result))
|
||||
FileHandle* handle = static_cast<FileHandle*>(wrap->stream());
|
||||
handle->AfterClose();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user