Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(138)

Unified Diff: ports/nacl-spawn/nacl_apipe.c

Issue 1742043002: Make M-x shell work in emacs. (Closed) Base URL: https://chromium.googlesource.com/webports.git@master
Patch Set: fix Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ports/nacl-spawn/nacl_apipe.c
diff --git a/ports/nacl-spawn/nacl_apipe.c b/ports/nacl-spawn/nacl_apipe.c
index 58f01d97eb8dd91072a29d84f8b9ca4a7948f582..c5bc0e1d4332e521625e909e5e001c6805866ee0 100644
--- a/ports/nacl-spawn/nacl_apipe.c
+++ b/ports/nacl-spawn/nacl_apipe.c
@@ -44,8 +44,15 @@ static int apipe_read(
nspawn_dict_setstring(req_var, "command", "nacl_apipe_read");
nspawn_dict_setint(req_var, "pipe_id", info->fh);
nspawn_dict_setint(req_var, "count", count);
+ nspawn_dict_setint(req_var, "nonblock",
+ (info->flags & O_NONBLOCK) != O_NONBLOCK);
struct PP_Var result_var = nspawn_send_request(req_var);
+ int err = nspawn_dict_getint(result_var, "error");
+ if (err != 0) {
+ nspawn_var_release(result_var);
+ return -err;
+ }
struct PP_Var data = nspawn_dict_get(result_var, "data");
assert(data.type == PP_VARTYPE_ARRAY_BUFFER);
uint32_t len;
@@ -103,7 +110,7 @@ static int apipe_release(const char* path, struct fuse_file_info* info) {
struct PP_Var req_var = nspawn_dict_create();
nspawn_dict_setstring(req_var, "command", "nacl_apipe_close");
nspawn_dict_setint(req_var, "pipe_id", info->fh);
- nspawn_dict_setint(req_var, "writer", info->flags == O_WRONLY);
+ nspawn_dict_setint(req_var, "writer", (info->flags & O_WRONLY) == O_WRONLY);
struct PP_Var result_var = nspawn_send_request(req_var);
int ret = nspawn_dict_getint(result_var, "result");

Powered by Google App Engine
This is Rietveld 408576698