py/stream: Remove mp_stream_errno and use system errno instead.

This change is made for two reasons:

1. A 3rd-party library (eg berkeley-db-1.xx, axtls) may use the system
   provided errno for certain errors, and yet MicroPython stream objects
   that it calls will be using the internal mp_stream_errno.  So if the
   library returns an error it is not known whether the corresponding errno
   code is stored in the system errno or mp_stream_errno.  Using the system
   errno in all cases (eg in the mp_stream_posix_XXX wrappers) fixes this
   ambiguity.

2. For systems that have threading the system-provided errno should always
   be used because the errno value is thread-local.

For systems that do not have an errno, the new lib/embed/__errno.c file is
provided.
This commit is contained in:
Damien George
2020-04-20 23:48:34 +10:00
parent 57fce3bdb2
commit e08ca78f40
6 changed files with 20 additions and 20 deletions

View File

@@ -206,8 +206,3 @@ int ets_esf_free_bufs(int idx) {
}
return cnt;
}
extern int mp_stream_errno;
int *__errno() {
return &mp_stream_errno;
}