stream: Make non-blcoking stream support configurable.
Enable only on unix. To avoid unpleasant surprises with error codes.
This commit is contained in:
parent
6c62e7257f
commit
0ef015b253
|
@ -249,6 +249,11 @@ typedef double mp_float_t;
|
|||
#define MICROPY_PATH_MAX (512)
|
||||
#endif
|
||||
|
||||
// Whether POSIX-semantics non-blocking streams are supported
|
||||
#ifndef MICROPY_STREAMS_NON_BLOCK
|
||||
#define MICROPY_STREAMS_NON_BLOCK (0)
|
||||
#endif
|
||||
|
||||
// Whether to use computed gotos in the VM, or a switch
|
||||
// Computed gotos are roughly 10% faster, and increase VM code size by a little
|
||||
#ifndef MICROPY_USE_COMPUTED_GOTO
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
*/
|
||||
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include "mpconfig.h"
|
||||
#include "nlr.h"
|
||||
|
@ -33,6 +32,9 @@
|
|||
#include "qstr.h"
|
||||
#include "obj.h"
|
||||
#include "stream.h"
|
||||
#if MICROPY_STREAMS_NON_BLOCK
|
||||
#include <errno.h>
|
||||
#endif
|
||||
|
||||
// This file defines generic Python stream read/write methods which
|
||||
// dispatch to the underlying stream interface of an object.
|
||||
|
@ -42,9 +44,13 @@
|
|||
|
||||
STATIC mp_obj_t stream_readall(mp_obj_t self_in);
|
||||
|
||||
#if MICROPY_STREAMS_NON_BLOCK
|
||||
// TODO: This is POSIX-specific (but then POSIX is the only real thing,
|
||||
// and anything else just emulates it, right?)
|
||||
#define is_nonblocking_error(errno) ((errno) == EAGAIN || (errno) == EWOULDBLOCK)
|
||||
#else
|
||||
#define is_nonblocking_error(errno) (0)
|
||||
#endif
|
||||
|
||||
STATIC mp_obj_t stream_read(uint n_args, const mp_obj_t *args) {
|
||||
struct _mp_obj_base_t *o = (struct _mp_obj_base_t *)args[0];
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
#define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_DOUBLE)
|
||||
#define MICROPY_LONGINT_IMPL (MICROPY_LONGINT_IMPL_MPZ)
|
||||
#define MICROPY_PATH_MAX (PATH_MAX)
|
||||
#define MICROPY_STREAMS_NON_BLOCK (1)
|
||||
#define MICROPY_USE_COMPUTED_GOTO (1)
|
||||
#define MICROPY_MOD_SYS_STDFILES (1)
|
||||
#define MICROPY_ENABLE_MOD_CMATH (1)
|
||||
|
|
Loading…
Reference in New Issue