J'ai une classe qui est un Qt :: Object et a une méthode qui crée un thread.Perl Qt 3.1 et les threads
Chaque fois que j'essaie de détacher ou de joindre le fil, les erreurs se produisent.
Le signal d'émission ne fonctionne pas non plus.
Exemple de code est:
package MyThread;
use threads;
use Qt;
use Qt::isa qw(Qt::Object);
use Qt::signals
imageResRecieved => ['int', 'int'];
sub NEW
{
shift->SUPER::NEW(@_[0..2]);
if (name() eq "unnamed") {
setName("MyThread");
}
}
sub getWidthHeight{
my ($seq, $frameNum) = @_;
my ($width, $height) = (1920, 1080);
sleep(2);
print "Emitting\n";
emit imageResRecieved($width, $height);
print "AFTER Emit\n";
}
sub getImageWidthThread{
my $thr = threads->create('getWidthHeight', @_);
$thr->detach(); # This causes seg faults
}
use MyThread;
use Qt::slots
handleImageResSignal => ['int', 'int'];
my $mythread = MyThread();
Qt::Object::connect($irt, SIGNAL "imageResRecieved(int, int)", this, SLOT "handleImageResSignal(int, int)");
$mythread->getImageWidthThread("$GLOBAL{DIR}/$GLOBAL{PAT}", $seq_start);
sub handleImageResSignal{
my ($width, $height) = @_;
print "\n Emitted ${width} ${height} \n";
}
Les erreurs que je reçois sont comme:
tentative de libérer la chaîne Partagée inexistante '39631808', interpréteur Perl: 0x2879910.
[1] Segmentation fault