#!/usr/bin/perl # Start a worker thread from inside another thread #BEGIN { #$Padre::TaskWorker::DEBUG = 1; #$Padre::TaskWorker::DEBUG = 1; #} use strict; use warnings; use Test::More; ###################################################################### # This test requires a DISPLAY to run BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } } plan tests => 8; use Time::HiRes 'sleep'; use t::lib::Padre; use Padre::Logger; use_ok('Test::NoWarnings'); use_ok('Padre::TaskWorker'); is( scalar( threads->list ), 0, 'No threads exists' ); # Fetch the master, is it the existing one? my $master1 = Padre::TaskWorker->master; my $master2 = Padre::TaskWorker->master; isa_ok( $master1, 'Padre::TaskWorker' ); isa_ok( $master2, 'Padre::TaskWorker' ); is( $master1->wid, $master2->wid, 'Masters match' ); sleep 0.1; is( scalar( threads->list ), 1, 'One thread exists' );