Wykres commitów

71 Commity (91d176d57a406588a355004d75376caca4b7c063)

Autor SHA1 Wiadomość Data
Paul Sokolovsky da124acfdb uasyncio: Release 1.2.3, added initial README. 2017-10-30 01:23:19 +02:00
Peter Hinch 65605e3de8 uasyncio: Add test showing I/O scheduling starvation.
If there is a coroutine to run immediately (with wait delay <= 0),
uasyncio.core never calls .wait() method, which is required to
process I/O events (and schedule coroutines waiting for them).

This test demonstrates the problem.
2017-08-20 16:36:15 +03:00
Paul Sokolovsky 7d9eb0716c uasyncio: Release 1.2.2. 2017-06-10 16:11:41 +03:00
Paul Sokolovsky a191626c2e uasyncio: Add awriteiter() method.
Write piecewise content from iterable (usually, a generator).
2017-06-10 16:10:27 +03:00
Paul Sokolovsky e1f75100cf uasyncio: Release 1.2.1. 2017-06-08 02:54:42 +03:00
Paul Sokolovsky a2097be138 uasyncio: Add own set_debug() function.
set_debug() from uasyncio.core doesn't have effect on the main uasyncio
package, so let them both have set_debug() function, and allow to enable
debug logging independently.
2017-06-08 02:51:29 +03:00
Paul Sokolovsky 75e1474ddf uasyncio: awrite: Use 3-arg .write(), accept offset/size too.
Use MicroPython .write() extension of passing offset/size to efficiently
spool buffers larger than socket output buffer. Also, make awrite()
accept these params too.
2017-06-07 03:09:34 +03:00
Paul Sokolovsky 87e30182a1 uasyncio: test-ab-medium.sh: Run ab on http://127.0.0.1 .
On some hosts, http://localhost doesn't work, apparently ab resolve it
via IPv6 or something.
2017-06-06 21:37:55 +03:00
Paul Sokolovsky f5fe55aaef uasyncio: Release 1.2. 2017-06-06 21:27:50 +03:00
Paul Sokolovsky 16afc06b8c uasyncio: Switch to memory-efficient poll.ipoll() method.
As added in MicroPython 1.9.
2017-06-06 21:04:37 +03:00
Paul Sokolovsky e8e531b754 uasyncio: Release 1.1.2. 2017-05-05 11:35:24 +03:00
Paul Sokolovsky 9a72e29564 uasyncio: Consistently use "if DEBUG and __debug__:" stanza.
To make sure this module can work without logging module imported, just
like uasyncio.core was made to.
2017-05-05 11:33:39 +03:00
Paul Sokolovsky 53193ba2e7 uasyncio: benchmark: Modern browsers produce requests more than 256 bytes.
So, not all of the request was read, and a browser would report than
connection was reset.
2017-03-16 01:55:32 +03:00
Paul Sokolovsky a355801fb1 uasyncio: wait: Remove no longer needed "if", artifact of epoll impl. 2017-03-13 00:44:58 +03:00
Paul Sokolovsky 4fc72c6032 uasyncio: Remove "epoll" references from previous Linux-only implementation. 2017-03-12 16:42:02 +03:00
Paul Sokolovsky aba6935892 uasyncio: Release 1.1.1. 2017-02-16 00:04:39 +03:00
Paul Sokolovsky 67445f3334 uasyncio: benchmark: Rename test runners to correspond to underlying tests. 2017-02-15 11:19:10 +03:00
Paul Sokolovsky 6a4973331a uasyncio: benchmark: Set higher queue length for "medium" test.
Following setting the default conservatively low in the module.
Surprisingly, heavy test appears to work with new default length
of 42.
2017-02-15 11:17:02 +03:00
Paul Sokolovsky e3dac1d693 uasyncio: Allow to override queue length, while setting low default.
The default queue length is set to take under 0.5K RAM on 32-bit system.
A queue length can be passed to get_event_loop() to override it. This
change follows similar change in uasyncio.core.
2017-02-15 11:14:53 +03:00
Paul Sokolovsky f6668aae28 uasyncio: Release 1.1. 2017-01-28 01:58:05 +03:00
Paul Sokolovsky 1bf1c74ae5 uasyncio: Use builtin uerrno module. 2017-01-28 01:55:40 +03:00
Paul Sokolovsky 7043ee0702 uasyncio: Implement StreamReader.readexactly().
With a unit test.
2017-01-28 01:04:21 +03:00
Paul Sokolovsky ec7b4b948b uasyncio: StreamReader.readline: Handle partial reads.
Now it will return a complete line regardless if it may take several
partial reads to do that. Test included.
2017-01-27 01:09:19 +03:00
Paul Sokolovsky a8d85e28d0 uasyncio: Fix partial reads in StreamReader.read/readline() methods.
If None (no data, would block) is received, need to wait for more data,
not just read it again immediately.
2017-01-26 22:20:29 +03:00
Paul Sokolovsky 56dd0f94e9 uasyncio: Rename examples as such. 2017-01-04 18:01:05 +03:00
Paul Sokolovsky 3e37bdda56 uasyncio: Move test_call_soon.py to uasyncio.core, as it needs only it.
Also, rename as example.
2017-01-04 18:01:05 +03:00
Daniel Mizyrycki 4bc5ab902b uasyncio: Add echo test 2017-01-01 19:06:54 -08:00
Daniel Mizyrycki 0f5d5cead7 uasyncio: Add minimum esp8266 support 2017-01-01 18:17:17 -08:00
Paul Sokolovsky 6256ad69c0 uasyncio: Release 1.0.1. 2016-12-30 22:32:26 +03:00
Paul Sokolovsky 5403e0f710 uasyncio: Use DEBUG variable as imported from uasyncio.core.
Avoids heap allocation to render disabled debug logging strings.
2016-12-29 11:37:41 +03:00
Paul Sokolovsky f29be360c0 uasyncio: wait: Add workaround against heap alloc on empty iteration.
"for a in ():" unconditionally allocates heap so far, per
https://github.com/micropython/micropython/issues/2716 . So, test for
empty result before iterating over it.
2016-12-28 10:25:31 +03:00
Paul Sokolovsky 23ff6305c3 uasyncio: Release 1.0. 2016-11-13 15:18:30 +03:00
Paul Sokolovsky 67d8e55dea uasyncio: Update for switching to utime.ticks_ms() timesource. 2016-11-13 04:39:52 +03:00
Paul Sokolovsky dfe4dee62a all: setup.py: New releases for gzip 4k conversion. 2016-10-11 06:47:01 +03:00
Paul Sokolovsky 65fb3707ba all: metadata.txt: Bump version for gzip 4k conversion. 2016-10-11 06:46:12 +03:00
Paul Sokolovsky 6f7bed1c53 uasyncio: test_http_server_heavy.py: Comment out mem_info() call. 2016-01-11 00:07:43 +02:00
Paul Sokolovsky 86692631c1 uasyncio: Add missing Boom HTTP testing tool support script. 2016-01-10 23:39:40 +02:00
Paul Sokolovsky e9648dad01 uasyncio: Release 0.9. 2015-12-13 01:55:06 +02:00
Paul Sokolovsky 5e10ef8adf uasyncio: Switch to builtin uselect.poll() object.
This is a big step towards supporting uasyncio on baremetal builds (and
on unix builds without FFI support).
2015-12-13 01:46:05 +02:00
Paul Sokolovsky b4b19f1dce uasyncio: Schedule simple I/O completion callbacks directly in event loop.
Simple == without args. This is expected action for them, and saves creation
of lambda just for that. Actually, probably all callbacks should be handled
this way.
2015-12-11 22:53:29 +02:00
Paul Sokolovsky 7cd53c8bf8 uasyncio: IORead/IOWrite syscalls don't return anything.
Their semantics is "wait for I/O of given type on object passed as argument",
so return value would be the same as argument, and thus no need to bother
to store/pass it around.
2015-12-10 00:29:10 +02:00
Paul Sokolovsky 17d96d35b5 uasyncio: Optimize reader/writer callbacks with no arguments.
Avoids allocating tuples.
2015-12-07 01:13:00 +02:00
Paul Sokolovsky 7fe611172f uasyncio/benchmark: Default is "medium" test, add CPython support. 2015-06-21 02:03:42 +03:00
Paul Sokolovsky 1251e83b6c uasyncio/benchmark: Add "medium load" server, serving 12K output per request. 2015-06-21 02:03:37 +03:00
Paul Sokolovsky 68b30061bc uasyncio/benchmark: CPython asyncio compatibility.
Unlimited .read() doesn't play well with it.
2015-06-21 02:00:42 +03:00
Paul Sokolovsky 0ce0123ab5 uasyncio/benchmark: Update for latest uasyncio/micropython. 2015-06-21 01:59:34 +03:00
Damien George 72d1f5ecfa uasyncio: Add StreamWriter.get_extra_info() to get peername.
This is the standard way of getting the name of the client that is
connected.
2015-06-03 13:25:27 +00:00
Paul Sokolovsky 1cbd5591f9 uasyncio: Release 0.8.1. 2015-01-04 22:01:36 +02:00
Paul Sokolovsky 99fa203686 uasyncio: StreamReader.close() -> .aclose().
Note: CPython asyncio lacks .close() on StreamReader at all, only StreamWriter
has it.
2015-01-04 21:47:06 +02:00
Paul Sokolovsky 20ddd54cb9 uasyncio: close() is synchronous method, ours is aclose() then. 2015-01-02 01:51:44 +02:00