Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Simple(3)	      User Contributed Perl Documentation	     Simple(3)

NAME
       Thread::Pool::Simple - A	simple thread-pool implementation

SYNOPSIS
	 use Thread::Pool::Simple;

	 my $pool = Thread::Pool::Simple->new(
			min => 3,	    # at least 3 workers
			max => 5,	    # at most 5	workers
			load =>	10,	    # increase worker if on average every worker has 10	jobs waiting
			init =>	[\&init_handle,	$arg1, $arg2, ...]   # run before creating worker thread
			pre => [\&pre_handle, $arg1, $arg2, ...]   # run after creating	worker thread
			do => [\&do_handle, $arg1, $arg2, ...]	   # job handler for each worker
			post =>	[\&post_handle,	$arg1, $arg2, ...] # run before	worker threads end
			passid => 1,	    # whether to pass the job id as the	first argument to the &do_handle
			lifespan => 10000,  # total jobs handled by each worker
		      );

	 my ($id1) = $pool->add(@arg1);	# call in list context
	 my $id2 = $pool->add(@arg2);	# call in scalar conetxt
	 $pool->add(@arg3)		# call in void context

	 my @ret = $pool->remove($id1);	# get result (block)
	 my $ret = $pool->remove_nb($id2); # get result	(no block)

	 $pool->cancel($id1);		# cancel the job
	 $pool->cancel_all();		# cancel all jobs

	 $pool->join();			# wait till all	jobs are done
	 $pool->detach();		# don't	wait.

DESCRIPTION
       "Thread::Pool::Simple" provides a simple	thread-pool implementaion
       without external	dependencies outside core modules.

       Jobs can	be submitted to	and handled by multi-threaded `workers'
       managed by the pool.

AUTHOR
       Jianyuan	Wu, <jwu@cpan.org>

COPYRIGHT AND LICENSE
       Copyright 2007 by Jianyuan Wu

       This library is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

perl v5.32.0			  2010-09-23			     Simple(3)

NAME | SYNOPSIS | DESCRIPTION | AUTHOR | COPYRIGHT AND LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Thread::Pool::Simple&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help