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
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
andtimer_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_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 forsleep_for
andwait_for
task execution timing control, add test for native check. - update readme to a new paradigm, and docblock corrections/updates.
- have Coroutine
setup
method controllibuv
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 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 allyield
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 enteringgather
method the process task not running, signal subprocess tasks handling differently - update required, readme docs and docblock comments
- update memory handling, add
close
methods toParallel
, andTask
, have auto destruct, check for valid instance before stopping spawn_kill
will also cancel and remove the task
`uv_spawn` process signal handling implemented
- add/test
uv_spawn
signal handling routines, addedspawn_kill
,spawn_signal
, andsignal_task
- update
spawn_kill
to cancel and remove the task - update memory handling, added
close
methods 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_sendfile
for usage withoutlibuv
, update file operation headers foruri
calls - update required, fixed to
symplely/processor
v1.4.3 for subprocess manager
Code cleanup, general fixes for file operations
- 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 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