Damien George
035906419d
extmod/uos_dupterm: Use native C stream methods on dupterm object.
...
This patch changes dupterm to call the native C stream methods on the
connected stream objects, instead of calling the Python readinto/write
methods. This is much more efficient for native stream objects like UART
and webrepl and doesn't require allocating a special dupterm array.
This change is a minor breaking change from the user's perspective because
dupterm no longer accepts pure user stream objects to duplicate on. But
with the recent addition of uio.IOBase it is possible to still create such
classes just by inheriting from uio.IOBase, for example:
import uio, uos
class MyStream(uio.IOBase):
def write(self, buf):
# existing write implementation
def readinto(self, buf):
# existing readinto implementation
uos.dupterm(MyStream())
2018-06-12 15:06:11 +10:00
..
2017-10-19 18:57:26 +11:00
2018-02-24 23:10:20 +11:00
2017-11-15 11:46:49 +11:00
2017-12-08 19:07:00 +11:00
2016-12-09 22:50:58 +11:00
2018-02-24 23:10:20 +11:00
2018-04-10 15:06:47 +10:00
2018-02-24 23:10:20 +11:00
2017-11-15 11:46:49 +11:00
2018-02-24 23:10:20 +11:00
2018-02-24 23:10:20 +11:00
2016-12-09 22:50:58 +11:00
2017-11-15 11:46:49 +11:00
2017-10-05 10:49:44 +11:00
2017-10-10 10:37:38 +11:00
2017-10-04 12:37:50 +11:00
2017-11-16 13:17:51 +11:00
2017-08-17 16:19:35 +10:00
2017-09-12 16:03:52 +10:00
2017-10-04 12:37:50 +11:00
2018-05-02 16:50:28 +10:00
2018-02-20 18:00:44 +11:00
2018-05-23 00:35:16 +10:00
2017-07-31 18:35:40 +10:00
2018-05-23 00:35:16 +10:00
2018-05-23 00:35:16 +10:00
2018-05-23 00:22:47 +10:00
2018-02-14 18:41:17 +11:00
2018-02-14 18:41:17 +11:00
2017-07-31 18:35:40 +10:00
2016-12-09 21:23:17 +11:00
2018-04-10 15:06:47 +10:00
2018-05-23 00:35:16 +10:00
2018-04-10 15:06:47 +10:00
2018-04-10 15:06:47 +10:00
2018-05-04 20:39:16 +10:00
2018-04-10 15:06:47 +10:00
2018-03-01 17:00:02 +11:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2018-06-12 11:55:29 +10:00
2018-06-12 11:55:29 +10:00
2017-07-31 18:35:40 +10:00
2018-06-12 12:17:43 +10:00
2017-07-31 18:35:40 +10:00
2018-05-10 23:14:23 +10:00
2018-03-16 23:54:06 +11:00
2018-02-22 12:48:51 +11:00
2017-12-20 16:55:42 +11:00
2017-12-19 13:37:15 +11:00
2018-05-18 23:31:00 +10:00
2017-11-15 11:56:58 +11:00
2018-06-12 13:53:43 +10:00
2017-07-31 18:35:40 +10:00
2018-05-22 14:18:16 +10:00
2017-08-30 21:02:00 +10:00
2018-02-21 22:39:25 +11:00
2017-08-30 21:02:00 +10:00
2018-06-12 12:29:26 +10:00
2017-10-10 16:01:04 +11:00
2018-04-04 14:24:03 +10:00
2017-09-01 11:11:09 +10:00
2018-04-04 14:23:25 +10:00
2017-12-11 13:49:09 +11:00
2017-02-22 12:58:11 +11:00
2018-06-12 13:50:11 +10:00
2018-05-01 15:53:25 +10:00
2017-07-31 18:35:40 +10:00
2017-12-07 10:31:14 +02:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2018-06-12 15:06:11 +10:00
2017-07-18 11:57:39 +10:00
2018-05-21 12:48:26 +10:00
2017-12-29 14:05:48 +11:00
2018-05-23 00:23:36 +10:00
2017-12-29 22:24:53 +11:00
2017-12-29 22:24:46 +11:00
2017-12-28 16:46:30 +11:00
2018-04-27 15:10:42 +10:00
2017-12-29 22:24:46 +11:00
2018-05-15 11:17:28 +10:00
2017-12-28 16:46:30 +11:00
2017-10-04 12:37:50 +11:00
2018-06-08 11:48:25 +10:00
2017-11-24 14:48:23 +11:00
2017-07-18 11:57:39 +10:00
2017-07-31 18:35:40 +10:00
2017-10-04 12:37:50 +11:00
2017-12-11 13:49:09 +11:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-10-04 12:37:50 +11:00
2018-05-11 13:44:50 +10:00
2018-02-18 21:51:04 -06:00
2017-07-31 18:35:40 +10:00
2018-03-17 00:31:40 +11:00
2018-03-17 00:31:40 +11:00
2017-07-31 18:35:40 +10:00
2018-05-21 12:49:56 +10:00
2018-05-17 11:20:06 +10:00
2017-07-31 18:35:40 +10:00
2018-05-22 16:54:03 +10:00
2017-07-31 18:35:40 +10:00
2017-10-04 12:37:50 +11:00
2018-04-05 01:11:26 +10:00
2018-04-05 01:11:26 +10:00
2018-03-02 11:01:24 +11:00
2017-09-18 00:06:43 +03:00
2017-10-24 22:39:36 +11:00
2018-03-13 14:03:15 +11:00
2017-07-31 18:35:40 +10:00
2018-02-20 17:56:58 +11:00
2018-02-20 17:56:58 +11:00
2017-11-20 09:30:06 +02:00
2017-11-20 09:30:06 +02:00
2017-10-04 12:37:50 +11:00
2017-12-12 16:53:44 +11:00
2017-10-04 12:37:50 +11:00
2017-10-04 12:37:50 +11:00
2018-02-14 23:17:06 +11:00
2017-10-04 12:37:50 +11:00
2017-12-19 14:01:19 +11:00
2017-10-04 12:37:50 +11:00
2017-10-04 12:37:50 +11:00
2018-04-05 16:14:17 +10:00
2017-11-16 13:53:04 +11:00
2018-04-10 13:41:32 +10:00
2017-06-09 17:33:01 +03:00
2018-02-14 18:19:22 +11:00
2017-10-04 12:37:50 +11:00
2017-08-29 13:16:30 +10:00
2018-06-08 12:12:08 +10:00
2018-06-08 11:48:25 +10:00
2017-07-31 18:35:40 +10:00
2017-11-24 14:48:23 +11:00
2017-12-29 13:44:26 +11:00
2017-07-31 18:35:40 +10:00
2018-06-12 12:17:43 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2018-02-14 18:41:17 +11:00
2016-11-16 18:13:50 +11:00
2018-06-12 13:53:43 +10:00
2018-02-19 00:26:14 +11:00
2017-12-11 13:49:09 +11:00
2017-11-29 17:01:39 +11:00
2018-02-19 16:12:44 +11:00
2018-02-19 00:26:14 +11:00
2018-06-06 14:28:23 +10:00
2017-03-14 11:52:05 +11:00
2018-05-18 15:23:02 +10:00
2017-07-31 18:35:40 +10:00
2017-07-18 11:57:39 +10:00
2018-05-23 00:23:36 +10:00
2017-12-05 00:38:41 +02:00
2018-06-12 15:06:11 +10:00
2018-05-10 23:00:04 +10:00
2017-03-20 15:20:26 +11:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-10-04 12:37:50 +11:00
2017-10-05 10:49:44 +11:00
2017-07-31 18:35:40 +10:00
2017-12-11 22:39:12 +11:00
2017-12-11 13:49:09 +11:00
2017-07-31 18:35:40 +10:00
2018-05-01 15:54:50 +10:00
2018-06-04 16:53:17 +10:00
2018-02-14 18:19:22 +11:00
2017-09-06 16:43:09 +10:00
2018-06-08 11:48:25 +10:00
2017-10-05 10:49:44 +11:00
2017-09-21 20:29:41 +10:00
2017-09-26 11:59:11 +10:00