diff --git a/DESCRIPTION b/DESCRIPTION index b62381c99..1e474236e 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: nanonext Type: Package Title: NNG (Nanomsg Next Gen) Lightweight Messaging Library -Version: 1.2.1.9019 +Version: 1.2.1.9020 Description: R binding for NNG (Nanomsg Next Gen), a successor to ZeroMQ. NNG is a socket library implementing 'Scalability Protocols', a reliable, high-performance standard for common communications patterns including diff --git a/NEWS.md b/NEWS.md index d36853fb8..1df758081 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,4 @@ -# nanonext 1.2.1.9019 (development) +# nanonext 1.2.1.9020 (development) #### New Features @@ -7,7 +7,7 @@ #### Updates -* Upgrades `reply()` to always return even when there is an evaluation error, allowing it to be used safely in a loop without exiting early. +* Upgrades `reply()` to always return even when there is an evaluation error. This allows it to be used safely in a loop without exiting early, for example. * Removes deprecated and defunct `next_config()`. * Performance enhancements for `promises::as.promise()` methods. diff --git a/R/context.R b/R/context.R index 8f98c192e..d974b5a07 100644 --- a/R/context.R +++ b/R/context.R @@ -160,7 +160,7 @@ reply <- function(context, block <- if (is.null(timeout)) TRUE else timeout res <- recv(context, mode = recv_mode, block = block) is_error_value(res) && return(res) - data <- .Call(rnng_eval_safe, pairlist(execute, res, ...)) + data <- .Call(rnng_eval_safe, as.call(list(execute, res, ...))) send(context, data = data, mode = send_mode, block = block) } diff --git a/src/sync.c b/src/sync.c index 51cfcf4c6..cf25eb373 100644 --- a/src/sync.c +++ b/src/sync.c @@ -24,8 +24,7 @@ static SEXP nano_eval_res; void nano_eval_safe(void *arg) { - SEXP data = (SEXP) arg; - nano_eval_res = Rf_eval(Rf_lcons(CAR(data), CDR(data)), R_GlobalEnv); + nano_eval_res = Rf_eval((SEXP) arg, R_GlobalEnv); } // aio completion callbacks ----------------------------------------------------