スレッドごとに 1 つの Tcl インタープリターを作成しようとしているときに、クラッシュに直面しています。Linux rh6 で TCL バージョン 8.5.9 を使用しています。ある種のメモリ破損のように見えるたびに、さまざまな機能でクラッシュします。ネットを通過することは有効なアプローチのようです。誰かが同様の問題に直面しましたか? マルチスレッドでの Tcl の使用には、何らかの特別なサポートが必要ですか?
以下は、tcl バージョン 8.5.9 でクラッシュを引き起こす小さなプログラムです。
#include <tcl.h>
#include <pthread.h>
void* run (void*)
{
Tcl_Interp *interp = Tcl_CreateInterp();
sleep(1);
Tcl_DeleteInterp(interp);
}
main ()
{
pthread_t t1, t2;
pthread_create(&t1, NULL, run, NULL);
pthread_create(&t2, NULL, run, NULL);
pthread_join (t1, NULL);
pthread_join (t2, NULL);
}