[ misa vranje @ 09.04.2005. 04:40 ] @
Ubijanje niti mi ne funkcionise bash najbolje kada koristim Tk.Sledeci kod ne radi to sto sam ja ocekivao,a to je da nit2 ubije nit1: #!/usr/bine/perl -w use strict; use threads; use threads::shared; use Tk; my $main=new MainWindow; my $list=&share({}); $list=$main->Listbox(-height=>6)->pack; my @niz=('perl','program','linux','unix','bla','bla'); $list->insert('end',@niz); my $nit1=&share({}); $nit1=threads->create(\&nit1); threads->create(\&nit2); sub nit1{ print "Usao sam u nit1 \n"; sleep 2;#u ovom trenutku bi nit1 trebala da bude $list->delete(0,'end');#ubijena od strane niti2 $list->insert('end','nit1','je prezivela'); print "izasao sam iz niti1 \n"; } sub nit2{ print "Ehej u niti2 sam trenutno\n"; $nit1->detach;#sada treba da se ubije nit1 print "Izasao sam iz niti2\n"; } MainLoop #kada ne koristim Tk sve lepo funkcionise. Problem nije u deljenju promenljive $nit1 jer kada umesto $nit1->detach; ubacim $nit1->join sve se lepo izvrsi(nit2 saceka nit1 da se zavrsi). Sta da radim? |