mirror of https://github.com/nodejs/node.git
fs: don't assert on uv_fs_*() errors
Pass errors to the JS callbacks, don't assert in C++ land. Fixes among other things the case where Node aborts because uv_fs_futimes() returns ENOSYS.v0.7.4-release
parent
0f33768059
commit
2156e5eca1
|
@ -226,11 +226,17 @@ struct fs_req_wrap {
|
|||
|
||||
#define ASYNC_CALL(func, callback, ...) \
|
||||
FSReqWrap* req_wrap = new FSReqWrap(); \
|
||||
int r = uv_fs_##func(Loop(), &req_wrap->req_, \
|
||||
int r = uv_fs_##func(Loop(), &req_wrap->req_, \
|
||||
__VA_ARGS__, After); \
|
||||
assert(r == 0); \
|
||||
req_wrap->object_->Set(oncomplete_sym, callback); \
|
||||
req_wrap->Dispatched(); \
|
||||
if (r < 0) { \
|
||||
uv_fs_t* req = &req_wrap->req_; \
|
||||
req->result = r; \
|
||||
req->path = NULL; \
|
||||
req->errorno = uv_last_error(uv_default_loop()).code; \
|
||||
After(req); \
|
||||
} \
|
||||
return scope.Close(req_wrap->object_);
|
||||
|
||||
#define SYNC_CALL(func, path, ...) \
|
||||
|
|
Loading…
Reference in New Issue