Skip to content

Commit 497660f

Browse files
committed
py/stream: Add mp_stream_close() helper function.
1 parent f9dc644 commit 497660f

2 files changed

Lines changed: 9 additions & 0 deletions

File tree

py/stream.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
#include "py/nlr.h"
3232
#include "py/objstr.h"
3333
#include "py/stream.h"
34+
#include "py/runtime.h"
3435

3536
#if MICROPY_STREAMS_NON_BLOCK
3637
#include <errno.h>
@@ -104,6 +105,13 @@ const mp_stream_p_t *mp_get_stream_raise(mp_obj_t self_in, int flags) {
104105
return stream_p;
105106
}
106107

108+
mp_obj_t mp_stream_close(mp_obj_t stream) {
109+
// TODO: Still consider using ioctl for close
110+
mp_obj_t dest[2];
111+
mp_load_method(stream, MP_QSTR_close, dest);
112+
return mp_call_method_n_kw(0, 0, dest);
113+
}
114+
107115
STATIC mp_obj_t stream_read_generic(size_t n_args, const mp_obj_t *args, byte flags) {
108116
const mp_stream_p_t *stream_p = mp_get_stream_raise(args[0], MP_STREAM_OP_READ);
109117

py/stream.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ MP_DECLARE_CONST_FUN_OBJ(mp_stream_ioctl_obj);
6565
#define MP_STREAM_OP_IOCTL (4)
6666

6767
const mp_stream_p_t *mp_get_stream_raise(mp_obj_t self_in, int flags);
68+
mp_obj_t mp_stream_close(mp_obj_t stream);
6869

6970
// Iterator which uses mp_stream_unbuffered_readline_obj
7071
mp_obj_t mp_stream_unbuffered_iter(mp_obj_t self);

0 commit comments

Comments
 (0)