mirror of
https://github.com/danog/parallel-functions.git
synced 2024-11-30 04:39:03 +01:00
Add docs
This commit is contained in:
parent
7422d61949
commit
ea9746ecf5
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[submodule "docs/.shared"]
|
||||||
|
path = docs/.shared
|
||||||
|
url = https://github.com/amphp/amphp.github.io
|
3
docs/.gitignore
vendored
Normal file
3
docs/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
.bundle
|
||||||
|
_site
|
||||||
|
vendor
|
1
docs/.shared
Submodule
1
docs/.shared
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit aba6b163e573b31a5b92e761c6686444b4834867
|
5
docs/Gemfile
Normal file
5
docs/Gemfile
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
source "https://rubygems.org"
|
||||||
|
gem "github-pages"
|
||||||
|
gem "kramdown"
|
||||||
|
gem "jekyll-github-metadata"
|
||||||
|
gem "jekyll-relative-links"
|
241
docs/Gemfile.lock
Normal file
241
docs/Gemfile.lock
Normal file
@ -0,0 +1,241 @@
|
|||||||
|
GEM
|
||||||
|
remote: https://rubygems.org/
|
||||||
|
specs:
|
||||||
|
activesupport (4.2.9)
|
||||||
|
i18n (~> 0.7)
|
||||||
|
minitest (~> 5.1)
|
||||||
|
thread_safe (~> 0.3, >= 0.3.4)
|
||||||
|
tzinfo (~> 1.1)
|
||||||
|
addressable (2.5.2)
|
||||||
|
public_suffix (>= 2.0.2, < 4.0)
|
||||||
|
coffee-script (2.4.1)
|
||||||
|
coffee-script-source
|
||||||
|
execjs
|
||||||
|
coffee-script-source (1.11.1)
|
||||||
|
colorator (1.1.0)
|
||||||
|
commonmarker (0.17.7.1)
|
||||||
|
ruby-enum (~> 0.5)
|
||||||
|
concurrent-ruby (1.0.5)
|
||||||
|
ethon (0.11.0)
|
||||||
|
ffi (>= 1.3.0)
|
||||||
|
execjs (2.7.0)
|
||||||
|
faraday (0.13.1)
|
||||||
|
multipart-post (>= 1.2, < 3)
|
||||||
|
ffi (1.9.18)
|
||||||
|
forwardable-extended (2.6.0)
|
||||||
|
gemoji (3.0.0)
|
||||||
|
github-pages (172)
|
||||||
|
activesupport (= 4.2.9)
|
||||||
|
github-pages-health-check (= 1.3.5)
|
||||||
|
jekyll (= 3.6.2)
|
||||||
|
jekyll-avatar (= 0.5.0)
|
||||||
|
jekyll-coffeescript (= 1.0.2)
|
||||||
|
jekyll-commonmark-ghpages (= 0.1.3)
|
||||||
|
jekyll-default-layout (= 0.1.4)
|
||||||
|
jekyll-feed (= 0.9.2)
|
||||||
|
jekyll-gist (= 1.4.1)
|
||||||
|
jekyll-github-metadata (= 2.9.3)
|
||||||
|
jekyll-mentions (= 1.2.0)
|
||||||
|
jekyll-optional-front-matter (= 0.3.0)
|
||||||
|
jekyll-paginate (= 1.1.0)
|
||||||
|
jekyll-readme-index (= 0.2.0)
|
||||||
|
jekyll-redirect-from (= 0.12.1)
|
||||||
|
jekyll-relative-links (= 0.5.2)
|
||||||
|
jekyll-remote-theme (= 0.2.3)
|
||||||
|
jekyll-sass-converter (= 1.5.0)
|
||||||
|
jekyll-seo-tag (= 2.3.0)
|
||||||
|
jekyll-sitemap (= 1.1.1)
|
||||||
|
jekyll-swiss (= 0.4.0)
|
||||||
|
jekyll-theme-architect (= 0.1.0)
|
||||||
|
jekyll-theme-cayman (= 0.1.0)
|
||||||
|
jekyll-theme-dinky (= 0.1.0)
|
||||||
|
jekyll-theme-hacker (= 0.1.0)
|
||||||
|
jekyll-theme-leap-day (= 0.1.0)
|
||||||
|
jekyll-theme-merlot (= 0.1.0)
|
||||||
|
jekyll-theme-midnight (= 0.1.0)
|
||||||
|
jekyll-theme-minimal (= 0.1.0)
|
||||||
|
jekyll-theme-modernist (= 0.1.0)
|
||||||
|
jekyll-theme-primer (= 0.5.2)
|
||||||
|
jekyll-theme-slate (= 0.1.0)
|
||||||
|
jekyll-theme-tactile (= 0.1.0)
|
||||||
|
jekyll-theme-time-machine (= 0.1.0)
|
||||||
|
jekyll-titles-from-headings (= 0.5.0)
|
||||||
|
jemoji (= 0.8.1)
|
||||||
|
kramdown (= 1.14.0)
|
||||||
|
liquid (= 4.0.0)
|
||||||
|
listen (= 3.0.6)
|
||||||
|
mercenary (~> 0.3)
|
||||||
|
minima (= 2.1.1)
|
||||||
|
rouge (= 2.2.1)
|
||||||
|
terminal-table (~> 1.4)
|
||||||
|
github-pages-health-check (1.3.5)
|
||||||
|
addressable (~> 2.3)
|
||||||
|
net-dns (~> 0.8)
|
||||||
|
octokit (~> 4.0)
|
||||||
|
public_suffix (~> 2.0)
|
||||||
|
typhoeus (~> 0.7)
|
||||||
|
html-pipeline (2.7.1)
|
||||||
|
activesupport (>= 2)
|
||||||
|
nokogiri (>= 1.4)
|
||||||
|
i18n (0.9.1)
|
||||||
|
concurrent-ruby (~> 1.0)
|
||||||
|
jekyll (3.6.2)
|
||||||
|
addressable (~> 2.4)
|
||||||
|
colorator (~> 1.0)
|
||||||
|
jekyll-sass-converter (~> 1.0)
|
||||||
|
jekyll-watch (~> 1.1)
|
||||||
|
kramdown (~> 1.14)
|
||||||
|
liquid (~> 4.0)
|
||||||
|
mercenary (~> 0.3.3)
|
||||||
|
pathutil (~> 0.9)
|
||||||
|
rouge (>= 1.7, < 3)
|
||||||
|
safe_yaml (~> 1.0)
|
||||||
|
jekyll-avatar (0.5.0)
|
||||||
|
jekyll (~> 3.0)
|
||||||
|
jekyll-coffeescript (1.0.2)
|
||||||
|
coffee-script (~> 2.2)
|
||||||
|
coffee-script-source (~> 1.11.1)
|
||||||
|
jekyll-commonmark (1.1.0)
|
||||||
|
commonmarker (~> 0.14)
|
||||||
|
jekyll (>= 3.0, < 4.0)
|
||||||
|
jekyll-commonmark-ghpages (0.1.3)
|
||||||
|
commonmarker (~> 0.17.6)
|
||||||
|
jekyll-commonmark (~> 1)
|
||||||
|
rouge (~> 2)
|
||||||
|
jekyll-default-layout (0.1.4)
|
||||||
|
jekyll (~> 3.0)
|
||||||
|
jekyll-feed (0.9.2)
|
||||||
|
jekyll (~> 3.3)
|
||||||
|
jekyll-gist (1.4.1)
|
||||||
|
octokit (~> 4.2)
|
||||||
|
jekyll-github-metadata (2.9.3)
|
||||||
|
jekyll (~> 3.1)
|
||||||
|
octokit (~> 4.0, != 4.4.0)
|
||||||
|
jekyll-mentions (1.2.0)
|
||||||
|
activesupport (~> 4.0)
|
||||||
|
html-pipeline (~> 2.3)
|
||||||
|
jekyll (~> 3.0)
|
||||||
|
jekyll-optional-front-matter (0.3.0)
|
||||||
|
jekyll (~> 3.0)
|
||||||
|
jekyll-paginate (1.1.0)
|
||||||
|
jekyll-readme-index (0.2.0)
|
||||||
|
jekyll (~> 3.0)
|
||||||
|
jekyll-redirect-from (0.12.1)
|
||||||
|
jekyll (~> 3.3)
|
||||||
|
jekyll-relative-links (0.5.2)
|
||||||
|
jekyll (~> 3.3)
|
||||||
|
jekyll-remote-theme (0.2.3)
|
||||||
|
jekyll (~> 3.5)
|
||||||
|
rubyzip (>= 1.2.1, < 3.0)
|
||||||
|
typhoeus (>= 0.7, < 2.0)
|
||||||
|
jekyll-sass-converter (1.5.0)
|
||||||
|
sass (~> 3.4)
|
||||||
|
jekyll-seo-tag (2.3.0)
|
||||||
|
jekyll (~> 3.3)
|
||||||
|
jekyll-sitemap (1.1.1)
|
||||||
|
jekyll (~> 3.3)
|
||||||
|
jekyll-swiss (0.4.0)
|
||||||
|
jekyll-theme-architect (0.1.0)
|
||||||
|
jekyll (~> 3.5)
|
||||||
|
jekyll-seo-tag (~> 2.0)
|
||||||
|
jekyll-theme-cayman (0.1.0)
|
||||||
|
jekyll (~> 3.5)
|
||||||
|
jekyll-seo-tag (~> 2.0)
|
||||||
|
jekyll-theme-dinky (0.1.0)
|
||||||
|
jekyll (~> 3.5)
|
||||||
|
jekyll-seo-tag (~> 2.0)
|
||||||
|
jekyll-theme-hacker (0.1.0)
|
||||||
|
jekyll (~> 3.5)
|
||||||
|
jekyll-seo-tag (~> 2.0)
|
||||||
|
jekyll-theme-leap-day (0.1.0)
|
||||||
|
jekyll (~> 3.5)
|
||||||
|
jekyll-seo-tag (~> 2.0)
|
||||||
|
jekyll-theme-merlot (0.1.0)
|
||||||
|
jekyll (~> 3.5)
|
||||||
|
jekyll-seo-tag (~> 2.0)
|
||||||
|
jekyll-theme-midnight (0.1.0)
|
||||||
|
jekyll (~> 3.5)
|
||||||
|
jekyll-seo-tag (~> 2.0)
|
||||||
|
jekyll-theme-minimal (0.1.0)
|
||||||
|
jekyll (~> 3.5)
|
||||||
|
jekyll-seo-tag (~> 2.0)
|
||||||
|
jekyll-theme-modernist (0.1.0)
|
||||||
|
jekyll (~> 3.5)
|
||||||
|
jekyll-seo-tag (~> 2.0)
|
||||||
|
jekyll-theme-primer (0.5.2)
|
||||||
|
jekyll (~> 3.5)
|
||||||
|
jekyll-github-metadata (~> 2.9)
|
||||||
|
jekyll-seo-tag (~> 2.2)
|
||||||
|
jekyll-theme-slate (0.1.0)
|
||||||
|
jekyll (~> 3.5)
|
||||||
|
jekyll-seo-tag (~> 2.0)
|
||||||
|
jekyll-theme-tactile (0.1.0)
|
||||||
|
jekyll (~> 3.5)
|
||||||
|
jekyll-seo-tag (~> 2.0)
|
||||||
|
jekyll-theme-time-machine (0.1.0)
|
||||||
|
jekyll (~> 3.5)
|
||||||
|
jekyll-seo-tag (~> 2.0)
|
||||||
|
jekyll-titles-from-headings (0.5.0)
|
||||||
|
jekyll (~> 3.3)
|
||||||
|
jekyll-watch (1.5.1)
|
||||||
|
listen (~> 3.0)
|
||||||
|
jemoji (0.8.1)
|
||||||
|
activesupport (~> 4.0, >= 4.2.9)
|
||||||
|
gemoji (~> 3.0)
|
||||||
|
html-pipeline (~> 2.2)
|
||||||
|
jekyll (>= 3.0)
|
||||||
|
kramdown (1.14.0)
|
||||||
|
liquid (4.0.0)
|
||||||
|
listen (3.0.6)
|
||||||
|
rb-fsevent (>= 0.9.3)
|
||||||
|
rb-inotify (>= 0.9.7)
|
||||||
|
mercenary (0.3.6)
|
||||||
|
mini_portile2 (2.3.0)
|
||||||
|
minima (2.1.1)
|
||||||
|
jekyll (~> 3.3)
|
||||||
|
minitest (5.10.3)
|
||||||
|
multipart-post (2.0.0)
|
||||||
|
net-dns (0.8.0)
|
||||||
|
nokogiri (1.8.1)
|
||||||
|
mini_portile2 (~> 2.3.0)
|
||||||
|
octokit (4.7.0)
|
||||||
|
sawyer (~> 0.8.0, >= 0.5.3)
|
||||||
|
pathutil (0.16.1)
|
||||||
|
forwardable-extended (~> 2.6)
|
||||||
|
public_suffix (2.0.5)
|
||||||
|
rb-fsevent (0.10.2)
|
||||||
|
rb-inotify (0.9.10)
|
||||||
|
ffi (>= 0.5.0, < 2)
|
||||||
|
rouge (2.2.1)
|
||||||
|
ruby-enum (0.7.1)
|
||||||
|
i18n
|
||||||
|
rubyzip (1.2.1)
|
||||||
|
safe_yaml (1.0.4)
|
||||||
|
sass (3.5.3)
|
||||||
|
sass-listen (~> 4.0.0)
|
||||||
|
sass-listen (4.0.0)
|
||||||
|
rb-fsevent (~> 0.9, >= 0.9.4)
|
||||||
|
rb-inotify (~> 0.9, >= 0.9.7)
|
||||||
|
sawyer (0.8.1)
|
||||||
|
addressable (>= 2.3.5, < 2.6)
|
||||||
|
faraday (~> 0.8, < 1.0)
|
||||||
|
terminal-table (1.8.0)
|
||||||
|
unicode-display_width (~> 1.1, >= 1.1.1)
|
||||||
|
thread_safe (0.3.6)
|
||||||
|
typhoeus (0.8.0)
|
||||||
|
ethon (>= 0.8.0)
|
||||||
|
tzinfo (1.2.4)
|
||||||
|
thread_safe (~> 0.1)
|
||||||
|
unicode-display_width (1.3.0)
|
||||||
|
|
||||||
|
PLATFORMS
|
||||||
|
ruby
|
||||||
|
|
||||||
|
DEPENDENCIES
|
||||||
|
github-pages
|
||||||
|
jekyll-github-metadata
|
||||||
|
jekyll-relative-links
|
||||||
|
kramdown
|
||||||
|
|
||||||
|
BUNDLED WITH
|
||||||
|
1.15.1
|
24
docs/_config.yml
Normal file
24
docs/_config.yml
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
kramdown:
|
||||||
|
input: GFM
|
||||||
|
toc_levels: 2..3
|
||||||
|
|
||||||
|
baseurl: "/parallel-functions"
|
||||||
|
layouts_dir: ".shared/layout"
|
||||||
|
includes_dir: ".shared/includes"
|
||||||
|
|
||||||
|
exclude: ["Gemfile", "Gemfile.lock", "README.md", "vendor"]
|
||||||
|
safe: true
|
||||||
|
|
||||||
|
repository: amphp/parallel-functions
|
||||||
|
gems:
|
||||||
|
- "jekyll-github-metadata"
|
||||||
|
- "jekyll-relative-links"
|
||||||
|
|
||||||
|
defaults:
|
||||||
|
- scope:
|
||||||
|
path: ""
|
||||||
|
type: "pages"
|
||||||
|
values:
|
||||||
|
layout: "docs"
|
||||||
|
|
||||||
|
shared_asset_path: "/parallel-functions/asset"
|
1
docs/asset
Symbolic link
1
docs/asset
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
.shared/asset
|
53
docs/index.md
Normal file
53
docs/index.md
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
---
|
||||||
|
title: Introduction
|
||||||
|
permalink: /
|
||||||
|
---
|
||||||
|
`amphp/parallel-functions` is a simplifying layer on top of `amphp/parallel`.
|
||||||
|
|
||||||
|
{:.warning}
|
||||||
|
> This library uses `jeremeamia/SuperClosure` to serialize closures, so its restrictions apply if you use closures. If serialization of a particular closure doesn't work, you can always write an autoloadable function and call that by name instead.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
This package can be installed as a [Composer](https://getcomposer.org/) dependency.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
composer require amphp/parallel-functions
|
||||||
|
```
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
Like all other `amphp` libraries, this library works in a fully asynchronous world. It returns promises as placeholders for future results of operations.
|
||||||
|
|
||||||
|
You don't need to know any details to use this library in traditional, fully synchronous applications. All you need is wrapping every function returning an `Amp\Promise` with `Amp\Promise\wait()`.
|
||||||
|
|
||||||
|
```php
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Amp\Promise;
|
||||||
|
use function Amp\ParallelFunctions\map;
|
||||||
|
|
||||||
|
$values = Promise\wait(map([1, 2, 3], function ($time) {
|
||||||
|
\sleep($time); // a blocking function call, might also do blocking I/O here
|
||||||
|
|
||||||
|
return $time * $time;
|
||||||
|
}));
|
||||||
|
```
|
||||||
|
|
||||||
|
### `parallel()`
|
||||||
|
|
||||||
|
`Amp\ParallelFunctions\parallel(callable): callable` wraps a `callable`, so it's executed in another thread / process on invocation. All arguments have to be serializable.
|
||||||
|
|
||||||
|
Currently this function only supports a direct string as function name or instances of `\Closure`. Support for other `callable` types might be added in the future.
|
||||||
|
|
||||||
|
### `map()`
|
||||||
|
|
||||||
|
`Amp\ParallelFunctions\map(array, callable): Promise` works similar to `array_map()`, but has a different signature. It accepts only one array instead of being variadic. It's thereby consistent with `Amp\ParallelFunctions\filter()`.
|
||||||
|
|
||||||
|
Restrictions of `Amp\ParallelFunctions\parallel()` apply.
|
||||||
|
|
||||||
|
### `filter()`
|
||||||
|
|
||||||
|
`Amp\ParallelFunctions\filter(array, callable, int): Promise` works like `array_filter()`, but returns a promise and executes in parallel.
|
||||||
|
|
||||||
|
Restrictions of `Amp\ParallelFunctions\parallel()` apply.
|
Loading…
Reference in New Issue
Block a user