#define SYNC_DEST_CALL(func, path, dest, ...) \
fs_req_wrap req_wrap; \
int err = uv_fs_ ## func(env->event_loop(), \
&req_wrap.req, \
__VA_ARGS__, \
NULL); \
if (err < 0) { \
if (dest != NULL && \
(err == UV_EEXIST || \
err == UV_ENOTEMPTY || \
err == UV_EPERM)) { \
return env->ThrowUVException(err, #func, "", dest); \
} else { \
return env->ThrowUVException(err, #func, "", path); \
} \
}