Description: |
(text/x-fossil-wiki)
Recentely,I build a c++ program with the TCL Interpreter,and spawn 20 threads .In each thread,I write the flowing code in loop :
1.new a TCL Interpreter
2.execute lots of TCL script
3.delete the interpreter
4.call Tcl_FinalizeThread to free the memory
After execute the code.the memory is raise up and didn't come down for ever.And the I check the code of TCL8.6.8 ,I found that TCL have two type of memory management:Thread Local Storage memory and shared memory.After Tcl_FinalizeThread is call ,the TLS memroy will transfer to shared memory.and shareed will not free for ever ,and this will lead to TCL Memory raise up and didn't come down for ever
My question is :
1.why TCL didn't free the shared memeory for ever
2.Does TCL provide any way to free the share memory
|