Dear List,<div><br></div><div>In the middle of figure out another problem, I used function Module twice, but then I got segfault.  Is there any solution for this?  For the time being, I really need to call function Module more than once.  </div>
<div><br></div><div>Best,</div><div>Jiqiang</div><div><br></div><div>P.S. an example code and the dump of output.</div><div>In addition, my sessionInfo()</div><div><br></div><div><div><font face="courier new, monospace">> sessionInfo()</font></div>
<div><font face="courier new, monospace">R version 2.15.1 (2012-06-22)</font></div><div><font face="courier new, monospace">Platform: x86_64-pc-linux-gnu (64-bit)</font></div><div><font face="courier new, monospace"><br></font></div>
<div><font face="courier new, monospace">locale:</font></div><div><font face="courier new, monospace"> [1] LC_CTYPE=en_US.utf8       LC_NUMERIC=C             </font></div><div><font face="courier new, monospace"> [3] LC_TIME=en_US.utf8        LC_COLLATE=en_US.utf8    </font></div>
<div><font face="courier new, monospace"> [5] LC_MONETARY=en_US.utf8    LC_MESSAGES=en_US.utf8   </font></div><div><font face="courier new, monospace"> [7] LC_PAPER=C                LC_NAME=C                </font></div><div>
<font face="courier new, monospace"> [9] LC_ADDRESS=C              LC_TELEPHONE=C           </font></div><div><font face="courier new, monospace">[11] LC_MEASUREMENT=en_US.utf8 LC_IDENTIFICATION=C      </font></div><div><font face="courier new, monospace"><br>
</font></div><div><font face="courier new, monospace">attached base packages:</font></div><div><font face="courier new, monospace">[1] stats     graphics  grDevices utils     datasets  methods   base     </font></div><div>
<font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">other attached packages:</font></div><div><font face="courier new, monospace">[1] inline_0.3.8 Rcpp_0.9.13 </font></div><div><font face="courier new, monospace"><br>
</font></div><div><font face="courier new, monospace">loaded via a namespace (and not attached):</font></div><div><font face="courier new, monospace">[1] tools_2.15.1</font></div></div><div><font face="courier new, monospace"><br>
</font></div><div><font face="courier new, monospace"><br></font></div><div><div><font face="courier new, monospace">require("Rcpp")</font></div><div><font face="courier new, monospace">require("inline")</font></div>
<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">inc <- '</font></div><div><font face="courier new, monospace">class Foo {</font></div><div><font face="courier new, monospace">private:</font></div>
<div><font face="courier new, monospace">  int x_;</font></div><div><font face="courier new, monospace">public:</font></div><div><font face="courier new, monospace">  Foo(int x) : x_(x) { } </font></div><div><font face="courier new, monospace">  void setx(int x) { x_ = x;}</font></div>
<div><font face="courier new, monospace">  int getx() const { return x_;}</font></div><div><font face="courier new, monospace">}; </font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">RCPP_MODULE(foo1) {</font></div>
<div><font face="courier new, monospace">  class_<Foo>("Foo")</font></div><div><font face="courier new, monospace">  .constructor<int>() </font></div><div><font face="courier new, monospace">  .method("setx", &Foo::setx) </font></div>
<div><font face="courier new, monospace">  .method("getx", &Foo::getx) </font></div><div><font face="courier new, monospace">  ;</font></div><div><font face="courier new, monospace">}</font></div><div><font face="courier new, monospace">'</font></div>
<div><font face="courier new, monospace">fx <- cxxfunction(signature(), "", include = inc, plugin = "Rcpp", verbose = !TRUE)</font></div><div><font face="courier new, monospace">m <- Module("foo1", getDynLib(fx))</font></div>
<div><font face="courier new, monospace">m2 <- Module("foo1", getDynLib(fx))</font></div></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">====== </font></div>
<div><font face="courier new, monospace"><br></font></div><div><div><font face="courier new, monospace">> m <- Module("foo1", getDynLib(fx))</font></div><div><font face="courier new, monospace">> m2 <- Module("foo1", getDynLib(fx))</font></div>
<div><font face="courier new, monospace">></font></div><div><font face="courier new, monospace">> f <- new(m$Foo, 1)</font></div><div><font face="courier new, monospace">> f2 <- new(m2$Foo, 1)</font></div><div>
<font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"> *** caught segfault ***</font></div><div><font face="courier new, monospace">address 0x90, cause 'memory not mapped'</font></div>
<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">Traceback:</font></div><div><font face="courier new, monospace"> 1: .Call(symbol)</font></div><div><font face="courier new, monospace"> 2: Module(module, mustStart = TRUE)</font></div>
<div><font face="courier new, monospace"> 3: .getModulePointer(x)</font></div><div><font face="courier new, monospace"> 4: m2$Foo</font></div><div><font face="courier new, monospace"> 5: .getClassFromCache(Class, where)</font></div>
<div><font face="courier new, monospace"> 6: getClass(Class, where = topenv(parent.frame()))</font></div><div><font face="courier new, monospace"> 7: new(m2$Foo, 1)</font></div><div><font face="courier new, monospace">aborting ...</font></div>
</div><div><font face="courier new, monospace"><br></font></div><div><br></div>