Description:
To implement the save session mechanism I try to write a big string in which I gathered information from an included object to the session file, however neuron seems to choke on its size.
I tried a little experiment and seem to hit a boundary (segmentation violation) around 264 characters (=256 + epsilon?), see code below.
Solution: Pass the objref of the vbox to the object of which state information needs to be saved and write directly to the session file.
Code: Select all
// This file shows the vbox.save length limitation.
// Just load and then save a session.
load_file("nrngui.hoc")
begintemplate test
objref vbox,this
strdef tstr
proc init(){
vbox=new VBox()
vbox.ref(this)
vbox.save("save()")
vbox.intercept(1)
xpanel("jsdahlkjf")
xlabel("Just a label")
xpanel()
vbox.intercept(0)
vbox.map()
}
proc save(){local index
tstr="0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"
for index=100,2000 {
printf("index: %d\n",index)
sprint(tstr,"%s%s",tstr,"x")
printf("%s\n",tstr)
vbox.save(tstr)
}
}
endtemplate test
objref mytest
mytest=new test()