Releases: symplely/coroutine
Releases · symplely/coroutine
fully integrated `libuv` networking features, more examples
- 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
libuvnetwork tests and examples. - added
stateless_taskfunction 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
progressTaskonly execute if actual data is returned - added two utility functions similar to NodeJS, Python usage as
random_uniformandtimer_for - update readme to show php version same as nodejs and python
1.9.2: Corrections for implementing proper `libuv` network related features.
- rework `isUvActive()` for only Linux detection, and control whether native PHP `network` events are checked for and executed first
1.9.1
- reduced required PHP version to 7.1 - using
proc_openfor subprocess operation no longer necessary, so keeping up with symfony/process package not needed. - reorder to have PHP native events to run first, before
libuvevents, the other way was causing timing and various issues. - added
file_deleteto recursively delete in thread/subprocess. - added methods/routines and examples to have
libuvhandle file changes monitoring on the file system. - use
libuvuv_timer feature as default forsleep_forandwait_fortask execution timing control, add test for native check. - update readme to a new paradigm, and docblock corrections/updates.
- have Coroutine
setupmethod controllibuvoverall 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
gatherhandle subprocess tasks. - improve coroutine
executemethod when being re-entering fromgather.
BC - updates, class renaming, added `subprocess` progress ipc interaction, and better signal handling
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 allyielditerations- added signal and ipc progress examples
- rework shutdown, and various bug fixes found when adding examples
- added $tasktype to
addProcessmethod, subprocess calls need to be force run if upon enteringgathermethod the process task not running, signal subprocess tasks handling differently - update required, readme docs and docblock comments
- update memory handling, add
closemethods toParallel, andTask, have auto destruct, check for valid instance before stopping spawn_killwill also cancel and remove the task
`uv_spawn` process signal handling implemented
- add/test
uv_spawnsignal handling routines, addedspawn_kill,spawn_signal, andsignal_task - update
spawn_killto cancel and remove the task - update memory handling, added
closemethods toParallel, andTask, and auto destruct - update required, renamed methods for consistency
BC and general reworking for handling `uv_spawn` for child subprocess calling
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`
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_sendfilefor usage withoutlibuv, update file operation headers foruricalls - update required, fixed to
symplely/processorv1.4.3 for subprocess manager
Code cleanup, general fixes for file operations
- added directly have
file_metareturn the size, content length - docblock corrections
- add internal functions to properly catch returns within tasks or any function/method
- insure
openhandle wrapper types - various file operation updates/tests
- bug fixed
file_contents, and addedfile_sendfile
1.7.2
add option to pass context to `file_uri`, various bug fixes found whe…
corrections/bug fix, `ioWaiting` was not checking for pending file operations, and on Linux not writing correctly
1.7.1 various updates, bug fix for Linux file operation not writing correctly