NAME
   subs::parallel - enables subroutines to seamlessly run in parallel

VERSION
   Version 0.09

DESCRIPTION
   This module gives Perl programmers the ability to easily and
   conveniently create multi-threaded applications through parallel
   subroutines.

   Parallel subroutines are just plain old subroutines which happen to run
   in another thread. When called, they return immediately to the calling
   thread but keep running in another. When its return value is needed
   somewhere, the returned value is transparently fetched. If the thread is
   still running, the code blocks waiting for it to finish (since the
   program can't go on without a value and keep being transparent).

   So, as it's possible to notice, the module interface aims to be as
   simple as possible. In fact, it works in such a way that, aside from the
   *parallelyzing* directives, you wouldn't be able to tell it's a
   multi-threaded application. All the thread handling (which isn't *that*
   complicated, really) is done automagically.

   It should work for anything that's thread safe - even for subroutines
   whose return values are not usually available across thread boundaries
   (for example, usually, you can't "share" an object, but this module
   makes it possible to return them without any problems, provided they're
   thread safe).

MOTIVATION
   The main reason behind this module was the fact that Perl threads are
   not widely used. Some could argue that this might happen because Perl
   threads are not very practical to use. Others could say that the
   restrictions imposed by the use of threads (you can't pass arbitrary
   data structures between threads).

   The latter issue is out of my reach. But, through the use of already
   existing features, it was possible to mask it a little bit. So you can
   return anything from your parallelyzed subroutines, but this is just
   some maybe unknown feature of "threads-"join>.

   The first issue is the main aim of this module: provide an extremely
   simple way to make multi-threaded applications. Along this near-future
   reality of a majority of dual-core computers, multi-threading might
   become the factor that distiguishes good from bad software.

   But I would be dishonest if I didn't note that some part of the effort
   was driven by the will to prove it could be done in Perl.

INSTALLATION

To install this module, run the following commands:

   perl Makefile.PL
   make
   make test
   make install


COPYRIGHT AND LICENCE

Put the correct copyright and licence information here.

Copyright (C) 2005-2015 Nilson Santos Figueiredo Junior

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