Skip to content

Commit a48dd12

Browse files
committed
remove aio references correctly to allow gc
1 parent b40392f commit a48dd12

File tree

3 files changed

+47
-47
lines changed

3 files changed

+47
-47
lines changed

R/aio.R

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ send_aio.nanoSocket <- function(con, data, mode = c("serial", "raw"), timeout) {
5757
logerror(aio)
5858
return(invisible(aio))
5959
}
60-
env <- `class<-`(new.env(hash = FALSE), "sendAio")
60+
env <- new.env(hash = FALSE)
6161
result <- NULL
6262
unresolv <- TRUE
6363
makeActiveBinding(sym = "result", fun = function(x) {
@@ -66,12 +66,12 @@ send_aio.nanoSocket <- function(con, data, mode = c("serial", "raw"), timeout) {
6666
missing(res) && return(.Call(rnng_aio_unresolv))
6767
if (res) logerror(res)
6868
result <<- res
69-
rm("aio", envir = env)
69+
aio <<- env[["aio"]] <<- NULL
7070
unresolv <<- FALSE
7171
}
7272
result
7373
}, env = env)
74-
`[[<-`(env, "aio", aio)
74+
`class<-`(`[[<-`(env, "aio", aio), "sendAio")
7575

7676
}
7777

@@ -90,7 +90,7 @@ send_aio.nanoContext <- function(con, data, mode = c("serial", "raw"), timeout)
9090
logerror(aio)
9191
return(invisible(aio))
9292
}
93-
env <- `class<-`(new.env(hash = FALSE), "sendAio")
93+
env <- new.env(hash = FALSE)
9494
result <- NULL
9595
unresolv <- TRUE
9696
makeActiveBinding(sym = "result", fun = function(x) {
@@ -99,12 +99,12 @@ send_aio.nanoContext <- function(con, data, mode = c("serial", "raw"), timeout)
9999
missing(res) && return(.Call(rnng_aio_unresolv))
100100
if (res) logerror(res)
101101
result <<- res
102-
rm("aio", envir = env)
102+
aio <<- env[["aio"]] <<- NULL
103103
unresolv <<- FALSE
104104
}
105105
result
106106
}, env = env)
107-
`[[<-`(env, "aio", aio)
107+
`class<-`(`[[<-`(env, "aio", aio), "sendAio")
108108

109109
}
110110

@@ -122,7 +122,7 @@ send_aio.nanoStream <- function(con, data, mode = "raw", timeout) {
122122
logerror(aio)
123123
return(invisible(aio))
124124
}
125-
env <- `class<-`(new.env(hash = FALSE), "sendAio")
125+
env <- new.env(hash = FALSE)
126126
result <- NULL
127127
unresolv <- TRUE
128128
makeActiveBinding(sym = "result", fun = function(x) {
@@ -131,12 +131,12 @@ send_aio.nanoStream <- function(con, data, mode = "raw", timeout) {
131131
missing(res) && return(.Call(rnng_aio_unresolv))
132132
if (res) logerror(res)
133133
result <<- res
134-
rm("aio", envir = env)
134+
aio <<- env[["aio"]] <<- NULL
135135
unresolv <<- FALSE
136136
}
137137
result
138138
}, env = env)
139-
`[[<-`(env, "aio", aio)
139+
`class<-`(`[[<-`(env, "aio", aio), "sendAio")
140140

141141
}
142142

@@ -223,7 +223,7 @@ recv_aio.nanoSocket <- function(con,
223223
logerror(aio)
224224
return(invisible(aio))
225225
}
226-
env <- `class<-`(new.env(hash = FALSE), "recvAio")
226+
env <- new.env(hash = FALSE)
227227
data <- raw <- NULL
228228
unresolv <- TRUE
229229
if (keep.raw) {
@@ -233,22 +233,22 @@ recv_aio.nanoSocket <- function(con,
233233
missing(res) && return(.Call(rnng_aio_unresolv))
234234
is.integer(res) && {
235235
data <<- raw <<- res
236-
rm("aio", envir = env)
236+
aio <<- env[["aio"]] <<- NULL
237237
unresolv <<- FALSE
238238
logerror(res)
239239
return(invisible(data))
240240
}
241241
on.exit(expr = {
242242
raw <<- res
243-
rm("aio", envir = env)
243+
aio <<- env[["aio"]] <<- NULL
244244
unresolv <<- FALSE
245245
return(res)
246246
})
247247
data <- decode(con = res, mode = mode)
248248
on.exit()
249249
raw <<- res
250250
data <<- data
251-
rm("aio", envir = env)
251+
aio <<- env[["aio"]] <<- NULL
252252
unresolv <<- FALSE
253253
}
254254
raw
@@ -260,27 +260,27 @@ recv_aio.nanoSocket <- function(con,
260260
missing(res) && return(.Call(rnng_aio_unresolv))
261261
is.integer(res) && {
262262
data <<- raw <<- res
263-
rm("aio", envir = env)
263+
aio <<- env[["aio"]] <<- NULL
264264
unresolv <<- FALSE
265265
logerror(res)
266266
return(invisible(data))
267267
}
268268
on.exit(expr = {
269269
data <<- res
270-
rm("aio", envir = env)
270+
aio <<- env[["aio"]] <<- NULL
271271
unresolv <<- FALSE
272272
return(res)
273273
})
274274
data <- decode(con = res, mode = mode)
275275
on.exit()
276276
if (keep.raw) raw <<- res
277277
data <<- data
278-
rm("aio", envir = env)
278+
aio <<- env[["aio"]] <<- NULL
279279
unresolv <<- FALSE
280280
}
281281
data
282282
}, env = env)
283-
`[[<-`(`[[<-`(env, "keep.raw", keep.raw), "aio", aio)
283+
`class<-`(`[[<-`(`[[<-`(env, "keep.raw", keep.raw), "aio", aio), "recvAio")
284284

285285
}
286286

@@ -303,7 +303,7 @@ recv_aio.nanoContext <- function(con,
303303
logerror(aio)
304304
return(invisible(aio))
305305
}
306-
env <- `class<-`(new.env(hash = FALSE), "recvAio")
306+
env <- new.env(hash = FALSE)
307307
data <- raw <- NULL
308308
unresolv <- TRUE
309309
if (keep.raw) {
@@ -313,22 +313,22 @@ recv_aio.nanoContext <- function(con,
313313
missing(res) && return(.Call(rnng_aio_unresolv))
314314
is.integer(res) && {
315315
data <<- raw <<- res
316-
rm("aio", envir = env)
316+
aio <<- env[["aio"]] <<- NULL
317317
unresolv <<- FALSE
318318
logerror(res)
319319
return(invisible(data))
320320
}
321321
on.exit(expr = {
322322
raw <<- res
323-
rm("aio", envir = env)
323+
aio <<- env[["aio"]] <<- NULL
324324
unresolv <<- FALSE
325325
return(res)
326326
})
327327
data <- decode(con = res, mode = mode)
328328
on.exit()
329329
raw <<- res
330330
data <<- data
331-
rm("aio", envir = env)
331+
aio <<- env[["aio"]] <<- NULL
332332
unresolv <<- FALSE
333333
}
334334
raw
@@ -340,27 +340,27 @@ recv_aio.nanoContext <- function(con,
340340
missing(res) && return(.Call(rnng_aio_unresolv))
341341
is.integer(res) && {
342342
data <<- raw <<- res
343-
rm("aio", envir = env)
343+
aio <<- env[["aio"]] <<- NULL
344344
unresolv <<- FALSE
345345
logerror(res)
346346
return(invisible(data))
347347
}
348348
on.exit(expr = {
349349
data <<- res
350-
rm("aio", envir = env)
350+
aio <<- env[["aio"]] <<- NULL
351351
unresolv <<- FALSE
352352
return(res)
353353
})
354354
data <- decode(con = res, mode = mode)
355355
on.exit()
356356
if (keep.raw) raw <<- res
357357
data <<- data
358-
rm("aio", envir = env)
358+
aio <<- env[["aio"]] <<- NULL
359359
unresolv <<- FALSE
360360
}
361361
data
362362
}, env = env)
363-
`[[<-`(`[[<-`(env, "keep.raw", keep.raw), "aio", aio)
363+
`class<-`(`[[<-`(`[[<-`(env, "keep.raw", keep.raw), "aio", aio), "recvAio")
364364

365365
}
366366

@@ -384,7 +384,7 @@ recv_aio.nanoStream <- function(con,
384384
logerror(aio)
385385
return(invisible(aio))
386386
}
387-
env <- `class<-`(new.env(hash = FALSE), "recvAio")
387+
env <- new.env(hash = FALSE)
388388
data <- raw <- NULL
389389
unresolv <- TRUE
390390
if (keep.raw) {
@@ -394,22 +394,22 @@ recv_aio.nanoStream <- function(con,
394394
missing(res) && return(.Call(rnng_aio_unresolv))
395395
is.integer(res) && {
396396
data <<- raw <<- res
397-
rm("aio", envir = env)
397+
aio <<- env[["aio"]] <<- NULL
398398
unresolv <<- FALSE
399399
logerror(res)
400400
return(invisible(data))
401401
}
402402
on.exit(expr = {
403403
raw <<- res
404-
rm("aio", envir = env)
404+
aio <<- env[["aio"]] <<- NULL
405405
unresolv <<- FALSE
406406
return(res)
407407
})
408408
data <- decode(con = res, mode = mode)
409409
on.exit()
410410
raw <<- res
411411
data <<- data
412-
rm("aio", envir = env)
412+
aio <<- env[["aio"]] <<- NULL
413413
unresolv <<- FALSE
414414
}
415415
raw
@@ -421,27 +421,27 @@ recv_aio.nanoStream <- function(con,
421421
missing(res) && return(.Call(rnng_aio_unresolv))
422422
is.integer(res) && {
423423
data <<- raw <<- res
424-
rm("aio", envir = env)
424+
aio <<- env[["aio"]] <<- NULL
425425
unresolv <<- FALSE
426426
logerror(res)
427427
return(invisible(data))
428428
}
429429
on.exit(expr = {
430430
data <<- res
431431
unresolv <<- FALSE
432-
rm("aio", envir = env)
432+
aio <<- env[["aio"]] <<- NULL
433433
return(res)
434434
})
435435
data <- decode(con = res, mode = mode)
436436
on.exit()
437437
if (keep.raw) raw <<- res
438438
data <<- data
439-
rm("aio", envir = env)
439+
aio <<- env[["aio"]] <<- NULL
440440
unresolv <<- FALSE
441441
}
442442
data
443443
}, env = env)
444-
`[[<-`(`[[<-`(env, "keep.raw", keep.raw), "aio", aio)
444+
`class<-`(`[[<-`(`[[<-`(env, "keep.raw", keep.raw), "aio", aio), "recvAio")
445445

446446
}
447447

R/context.R

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ request <- function(context,
212212
logerror(aio)
213213
return(invisible(aio))
214214
}
215-
env <- `class<-`(new.env(hash = FALSE), "recvAio")
215+
env <- new.env(hash = FALSE)
216216
data <- raw <- NULL
217217
unresolv <- TRUE
218218
if (keep.raw) {
@@ -222,22 +222,22 @@ request <- function(context,
222222
missing(res) && return(.Call(rnng_aio_unresolv))
223223
is.integer(res) && {
224224
data <<- raw <<- res
225-
rm("aio", envir = env)
225+
aio <<- env[["aio"]] <<- NULL
226226
unresolv <<- FALSE
227227
logerror(res)
228228
return(invisible(data))
229229
}
230230
on.exit(expr = {
231231
raw <<- res
232-
rm("aio", envir = env)
232+
aio <<- env[["aio"]] <<- NULL
233233
unresolv <<- FALSE
234234
return(res)
235235
})
236236
data <- decode(con = res, mode = recv_mode)
237237
on.exit()
238238
raw <<- res
239239
data <<- data
240-
rm("aio", envir = env)
240+
aio <<- env[["aio"]] <<- NULL
241241
unresolv <<- FALSE
242242
}
243243
raw
@@ -249,27 +249,27 @@ request <- function(context,
249249
missing(res) && return(.Call(rnng_aio_unresolv))
250250
is.integer(res) && {
251251
data <<- raw <<- res
252-
rm("aio", envir = env)
252+
aio <<- env[["aio"]] <<- NULL
253253
unresolv <<- FALSE
254254
logerror(res)
255255
return(invisible(data))
256256
}
257257
on.exit(expr = {
258258
data <<- res
259-
rm("aio", envir = env)
259+
aio <<- env[["aio"]] <<- NULL
260260
unresolv <<- FALSE
261261
return(res)
262262
})
263263
data <- decode(con = res, mode = recv_mode)
264264
on.exit()
265265
if (keep.raw) raw <<- res
266266
data <<- data
267-
rm("aio", envir = env)
267+
aio <<- env[["aio"]] <<- NULL
268268
unresolv <<- FALSE
269269
}
270270
data
271271
}, env = env)
272-
`[[<-`(`[[<-`(env, "keep.raw", keep.raw), "aio", aio)
272+
`class<-`(`[[<-`(`[[<-`(env, "keep.raw", keep.raw), "aio", aio), "recvAio")
273273

274274
}
275275

R/ncurl.R

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ ncurl <- function(url, async = FALSE, method = NULL, headers = NULL, data = NULL
7070
logerror(aio)
7171
return(invisible(aio))
7272
}
73-
env <- `class<-`(new.env(), "recvAio")
73+
env <- new.env(hash = FALSE)
7474
data <- raw <- NULL
7575
unresolv <- TRUE
7676
makeActiveBinding(sym = "raw", fun = function(x) {
@@ -79,14 +79,14 @@ ncurl <- function(url, async = FALSE, method = NULL, headers = NULL, data = NULL
7979
missing(res) && return(.Call(rnng_aio_unresolv))
8080
is.integer(res) && {
8181
data <<- raw <<- res
82-
rm("aio", envir = env)
82+
aio <<- env[["aio"]] <<- NULL
8383
unresolv <<- FALSE
8484
logerror(res)
8585
return(invisible(data))
8686
}
8787
raw <<- res
8888
data <<- tryCatch(rawToChar(res), error = function(e) NULL)
89-
rm("aio", envir = env)
89+
aio <<- env[["aio"]] <<- NULL
9090
unresolv <<- FALSE
9191
}
9292
raw
@@ -97,19 +97,19 @@ ncurl <- function(url, async = FALSE, method = NULL, headers = NULL, data = NULL
9797
missing(res) && return(.Call(rnng_aio_unresolv))
9898
is.integer(res) && {
9999
data <<- raw <<- res
100-
rm("aio", envir = env)
100+
aio <<- env[["aio"]] <<- NULL
101101
unresolv <<- FALSE
102102
logerror(res)
103103
return(invisible(data))
104104
}
105105
raw <<- res
106106
data <<- tryCatch(rawToChar(res), error = function(e) NULL)
107-
rm("aio", envir = env)
107+
aio <<- env[["aio"]] <<- NULL
108108
unresolv <<- FALSE
109109
}
110110
data
111111
}, env = env)
112-
`[[<-`(`[[<-`(env, "keep.raw", TRUE), "aio", aio)
112+
`class<-`(`[[<-`(`[[<-`(env, "keep.raw", TRUE), "aio", aio), "recvAio")
113113

114114
}
115115
}

0 commit comments

Comments
 (0)