Skip to content

Releases: symplely/coroutine

fully integrated `libuv` networking features, more examples

01 Mar 04:08
Compare
Choose a tag to compare
  • added methods/functions:
    net_operation, dns_address, dns_name, dns_record, listener_task
    net_listen, net_client, net_server, net_stop, net_accept, net_connect, net_bind
    net_read, net_write, net_close, net_peer, net_request, net_response
    These functions to methods behavior depends on uri scheme, and either a libuv object or stream/fd/socket resource passed in.
  • added more upstream libuv network tests and examples.
  • added stateless_task function to cause tasks/coroutines not to keep task completion state or data.
  • added NetworkAssistant class for handling network message processing, works similar to PSR-7
  • code clean up, corrections
  • added an PHP version of Python and NodeJS sync/async examples from https://medium.com/@interfacer/intro-to-async-concurrency-in-python-and-node-js-69315b1e3e36
  • Refactoring for examples not working as expected
  • insure progressTask only execute if actual data is returned
  • added two utility functions similar to NodeJS, Python usage as random_uniform and timer_for
  • update readme to show php version same as nodejs and python

1.9.2: Corrections for implementing proper `libuv` network related features.

30 Apr 14:27
Compare
Choose a tag to compare
- rework `isUvActive()` for only Linux detection, and control whether native PHP `network` events are checked for and executed first

1.9.1

28 Apr 01:46
Compare
Choose a tag to compare
  • reduced required PHP version to 7.1 - using proc_open for subprocess operation no longer necessary, so keeping up with symfony/process package not needed.
  • reorder to have PHP native events to run first, before libuv events, the other way was causing timing and various issues.
  • added file_delete to recursively delete in thread/subprocess.
  • added methods/routines and examples to have libuv handle file changes monitoring on the file system.
  • use libuv uv_timer feature as default for sleep_for and wait_for task execution timing control, add test for native check.
  • update readme to a new paradigm, and docblock corrections/updates.
  • have Coroutine setup method control libuv overall and other class state.
  • added method to retrieve the Task object instance from task id.
  • bug fixes, the channel ipc progress feature wasn't working correctly when other tasks running, some workaround fixes for now.
  • update test/example to match required BC version.
  • rework how gather handle subprocess tasks.
  • improve coroutine execute method when being re-entering from gather.

BC - updates, class renaming, added `subprocess` progress ipc interaction, and better signal handling

09 Apr 23:05
Compare
Choose a tag to compare

Next version will began phasing in Linux libuv network stream/fd/socket feature, Widows support is broken will continue to use stream_select for the same feature.

  • uv_run() now executing on all yield iterations
  • added signal and ipc progress examples
  • rework shutdown, and various bug fixes found when adding examples
  • added $tasktype to addProcess method, subprocess calls need to be force run if upon entering gather method the process task not running, signal subprocess tasks handling differently
  • update required, readme docs and docblock comments
  • update memory handling, add close methods to Parallel, and Task, have auto destruct, check for valid instance before stopping
  • spawn_kill will also cancel and remove the task

`uv_spawn` process signal handling implemented

30 Mar 02:19
Compare
Choose a tag to compare
  • add/test uv_spawn signal handling routines, added spawn_kill, spawn_signal, and signal_task
  • update spawn_kill to cancel and remove the task
  • update memory handling, added close methods to Parallel, and Task, and auto destruct
  • update required, renamed methods for consistency

BC and general reworking for handling `uv_spawn` for child subprocess calling

27 Mar 21:43
Compare
Choose a tag to compare

This version onward will use uv_spawn and other features of libuv for subprocess execution, if not install the fallback will use previous system of proc_open.

  • update namespaces
  • update Parallel success, fail, and timeout call signature, added signal handling
  • update Parallel to require Coroutine class at creation, increase concurrency
  • update required and readme/docs references
  • remove sub process default timeout
  • moved constants/stubs to symplely/spawn
  • Use Github Actions for all CI builds/tests

maintenance release before library change - `symplely/processor` to `symplely/spawn`

20 Mar 01:02
Compare
Choose a tag to compare

The next version will use symplely/spawn that uses uv_spawn of libuv for child subprocess management/execution.
The fallback will use same aspects of symplely/processor, if libuv not installed.

  • update constants
  • insure file operation writes/reads are unbuffered
  • update/test file_sendfile for usage without libuv, update file operation headers for uri calls
  • update required, fixed to symplely/processor v1.4.3 for subprocess manager

Code cleanup, general fixes for file operations

14 Mar 18:38
Compare
Choose a tag to compare
  • added directly have file_meta return the size, content length
  • docblock corrections
  • add internal functions to properly catch returns within tasks or any function/method
  • insure open handle wrapper types
  • various file operation updates/tests
  • bug fixed file_contents, and added file_sendfile

1.7.2: add option to pass context to `file_uri`, various bug fixes found whe…

12 Mar 03:27
Compare
Choose a tag to compare

corrections/bug fix, `ioWaiting` was not checking for pending file operations, and on Linux not writing correctly

11 Mar 03:09
Compare
Choose a tag to compare
1.7.1

various updates, bug fix for Linux file operation not writing correctly