Skip Menu |

This queue is for tickets about the future CPAN distribution.

Report information
The Basics
Id: 97022
Status: resolved
Priority: 0/
Queue: future

People
Owner: Nobody in particular
Requestors: MITHALDU [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: 0.29



Subject: documentation does not describe on a high level how asynchronicity is provided
Due to your linking the PDF describing Futures in Scala, a bunch of germans discussed Future.pm in #hannover.pm and one main issue i saw come up is that Future.pm does nothing to explain how the asynchronicity happens, whether Future.pm provides it, or if something else needs to provide it, and how it does so. As an example question for this kind of lack of understanding, i'll translate one: "so making a new Future object starts a new thread?"
On Mon Jul 07 10:26:49 2014, MITHALDU wrote: Show quoted text
> Due to your linking the PDF describing Futures in Scala, a bunch of > germans discussed Future.pm in #hannover.pm and one main issue i saw > come up is that Future.pm does nothing to explain how the > asynchronicity happens, whether Future.pm provides it, or if something > else needs to provide it, and how it does so. > > As an example question for this kind of lack of understanding, i'll > translate one: > > "so making a new Future object starts a new thread?"
15:34 <Mithaldu> "Future itself provides no asynchronicity, but is meant to be passed on to event loops, thread managers or similar. The main purpose of Future itself is to provide a pleasing and useful API to both developers and asynchronicity providers." -- Paul Evans
Added. -- Paul Evans
Subject: rt97022.patch
=== modified file 'lib/Future.pm' --- lib/Future.pm 2014-06-26 18:23:14 +0000 +++ lib/Future.pm 2014-07-16 23:41:20 +0000 @@ -65,6 +65,13 @@ different methods on the class. The methods below are documented in two sections; those of interest to each side of the interface. +It should be noted however, that this module does not in any way provide an +actual mechanism for performing this asynchronous activity; it merely provides +a way to create objects that can be used for control and data flow around +those operations. It allows such code to be written in a neater, +forward-reading manner, and simplifies many common patterns that are often +involved in such situations. + See also L<Future::Utils> which contains useful loop-constructing functions, to run a future-returning function repeatedly in a loop.
Released in 0.29 -- Paul Evans