(0.8.0)
parallel\Runtime::run — Exécution
Planifie task
pour l'exécution en parallèle.
Planifie task
pour l'exécution en parallèle, en passant argv
au moment de l'exécution.
Les fermetures planifiées pour l'exécution en parallèle ne doivent pas :
Les instructions interdites dans les fermetures destinées à l'exécution en parallèle sont :
Note:
Les fermetures imbriquées peuvent yield ou utiliser by-reference, mais ne doivent pas contenir de déclarations de classes ou de fonctions nommées.
Note:
Aucune instruction n'est interdite dans les fichiers que la tâche peut inclure.
Les arguments ne doivent pas:
Note:
Dans le cas des ressources de flux de fichiers, la ressource sera convertie en descripteur de fichier et passée en int si possible, ceci n'est pas supporté sur Windows.
Les objets internes utilisent généralement une structure personnalisée qui ne peut pas être copiée en toute sécurité par valeur, PHP manque actuellement des mécanismes pour le faire (sans sérialisation) et donc seuls les objets qui n'utilisent pas une structure personnalisée peuvent être partagés.
Certains objets internes n'utilisent pas de structure personnalisée, par exemple parallel\Events\Event et peuvent donc être partagés.
Les fermetures sont un type spécial d'objet interne et supportent d'être copiées par valeur, et peuvent donc être partagées.
Les canaux sont centraux pour l'écriture de code parallèle et supportent l'accès et l'exécution concurrents par nécessité, et peuvent donc être partagés.
Une classe utilisateur qui étend une classe interne peut utiliser une structure personnalisée telle que définie par la classe interne, auquel cas elle ne peut pas être copiée en toute sécurité par valeur, et ne peut donc pas être partagée.
La Future retournée ne doit pas être ignorée lorsque la tâche contient une déclaration de retour ou de lancer.
Lance une parallel\Runtime\Error\Closed si parallel\Runtime était fermé.
Lance une parallel\Runtime\Error\IllegalFunction si task
est une fermeture créée à partir d'une fonction interne.
Lance une parallel\Runtime\Error\IllegalInstruction si task
contient des instructions illégales.
Lance une parallel\Runtime\Error\IllegalParameter si task
accepte ou argv
contient des variables illégales.
Lance une parallel\Runtime\Error\IllegalReturn si task
retourne illégalement.