Я столкнулся с сбоем при попытке создать один интерпретатор tcl в потоке. Я использую TCL версии 8.5.9 для linux rh6. Сбой при различных функциях каждый раз кажется своего рода повреждением памяти. Пройдя через сеть, это кажется правильным подходом. Кто-нибудь сталкивался с подобной проблемой? Многопоточное использование Tcl требует какой-либо специальной поддержки?Использование Tcl в многопоточном приложении C++
Ниже приведена небольшая программа, вызывающая сбой при 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);
}
Прежде всего, вы должны вызывать ['Tcl_FindExecutable'] (http://www.tcl.tk/man/tcl8.6/TclLib/FindExec.htm). –
Не по нити, а один раз за процесс. Он настраивает многие вещи. –
как вы его компилируете? Передача -ltcl8.5 аргумент ?? Включен ли поток файлов libtcl8.5.so? –