Hi Ivan,
Unfortunately I cannot answer your question.
However, I do have quite a bit of experience using R's reference classes
and you might want to consider the more recent R6 package.
It provides R6 classes which have advantages over
reference classes.  See for example:

1. Hadley Wickham on R6 (chapter 16 in "Advanced R")
https://adv-r.hadley.nz/r6.html

2. The R6 package documentation which seems to mention 'lock' in quite a
few places
https://cran.r-project.org/web/packages/R6/R6.pdf

HTH,
Eric


On Mon, Aug 27, 2018 at 7:25 PM, Ivan Krylov <krylov.r...@gmail.com> wrote:

> Hi!
>
> I'm trying to create a persistent memoising class with a destructor and
> an option to evaluate cache misses in parallel. I want to lock all
> its fields because it doesn't make sense to change them after the
> filename, the environment object and the function are set in the
> object. (I'm not sure whether I should lock the environment field I use
> as the hash, though.)
>
> The problem is, I can't figure out how to use class$lock(...) properly:
>
> > test.class <- setRefClass("test", fields=c("field"))
> > test.class$lock("field")
> Error in .makeDefaultBinding(current@field, current@className, TRUE,
> environment(current)) :
>   use of NULL environment is defunct
>
> By looking at traceback() and source of methods:::.lockRefFields,
> I see that environment(zzz@generator$def@fieldPrototypes[["field"]])
> is, indeed, NULL.
>
> I'm using R version 3.3.3 (2017-03-06),  version$`svn rev` is "72310".
>
> What am I doing wring?
>
> --
> Best regards,
> Ivan
>
> P.S. Please Cc me in your replies to the list, if possible.
>
> ______________________________________________
> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/
> posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to