Document --threads, -j and throw an error when it's used on a non-threaded perl

This commit is contained in:
Alessandro Ranellucci 2012-04-10 16:26:56 +02:00
parent fc76104aa7
commit 63ff01764c
4 changed files with 19 additions and 4 deletions

View file

@ -38,7 +38,8 @@ use Slic3r::Surface;
use Slic3r::TriangleMesh;
use Slic3r::TriangleMesh::IntersectionLine;
our $threads = 4;
our $have_threads = $Config{useithreads} && eval "use threads; use Thread::Queue; 1";
our $threads = $have_threads ? 4 : undef;
# miscellaneous options
our $notes = '';
@ -146,7 +147,7 @@ our $duplicate_distance = 6; # mm
sub parallelize {
my %params = @_;
if (!$params{disable} && $Config{useithreads} && $Slic3r::threads > 1 && eval "use threads; use Thread::Queue; 1") {
if (!$params{disable} && $Slic3r::have_threads && $Slic3r::threads > 1) {
my $q = Thread::Queue->new;
$q->enqueue(@{ $params{items} }, (map undef, 1..$Slic3r::threads));

View file

@ -507,6 +507,12 @@ sub validate_cli {
sub validate {
my $class = shift;
# -j, --threads
die "Invalid value for --threads\n"
if defined $Slic3r::threads && $Slic3r::threads < 1;
die "Your perl wasn't built with multithread support\n"
if defined $Slic3r::threads && !$Slic3r::have_threads;
# --layer-height
die "Invalid value for --layer-height\n"