Threads
am 11.07.2006 16:10:08 von dolemanHallo,
Ich Implementiere ein LDAP-Browser in Perl Tk, er soll neben den
Browse-Funktionen auch eine Such Funktion beinhalten, dabei wird die
Net::LDAP Schnittstelle benutzt. Wenn jetzt eine Suchanfrage
abgeschickt wird sollte sie auch vom Benutzer abgebrochen werden
können, da sie bei falschen filter-eingaben sehr lang dauern könnte.
Deshalb sollte die Suchanfrage in einen eigenen Prozess/Thread
gestartet werden. Was gibt es in Perl für möglichkeiten?
Ich habe mal folgendes versucht:
my $thr1 =3D threads->new(
sub {
my ($basedn, $scope, $searchfilter, @attr) =3D @_;
print "Suchen...\n$basedn, $scope, $searchfilter, @attr\n";
#suchanfrage
my $list =3D $ldapconnection->search(
base =3D> $basedn,
scope =3D> $scope,
filter =3D> $searchfilter,
attrs =3D> [@attr],
)
|| die $LDAP_Error;
#seach error -> exit
if ($LDAP_Error) {
cluck("Searching error : $LDAP_Error.\n\n");
exit();
}, $basedn, $scope, $searchfilter, @attr
);
$thr1->join();
wobei bei $thr1->join eine fehlermeldung liefert. Außerdem sollte ich
die $list Variable dann wieder aus dem Thread returnen.....
danke
gruss Andrei