From b72cb0ca1bb27396a5dcba9ce8a6f00dbd3d5f19 Mon Sep 17 00:00:00 2001 From: David Lechner Date: Fri, 24 Jan 2020 11:37:53 -0600 Subject: [PATCH] py/mpthread.h: Use strong type for mp_thread_set_state() argument. This modifies the signature of mp_thread_set_state() to use mp_state_thread_t* instead of void*. This matches the return type of mp_thread_get_state(), which returns the same value. `struct _mp_state_thread_t;` had to be moved before `#include ` since the stm32 port uses it in its mpthreadport.h file. --- ports/cc3200/mpthreadport.c | 2 +- ports/esp32/mpthreadport.c | 2 +- ports/stm32/mpthreadport.h | 2 +- ports/unix/mpthreadport.c | 2 +- py/mpthread.h | 6 +++--- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/ports/cc3200/mpthreadport.c b/ports/cc3200/mpthreadport.c index 9dbc518e06..f2fc76bdb0 100644 --- a/ports/cc3200/mpthreadport.c +++ b/ports/cc3200/mpthreadport.c @@ -85,7 +85,7 @@ mp_state_thread_t *mp_thread_get_state(void) { return pvTaskGetThreadLocalStoragePointer(NULL, 0); } -void mp_thread_set_state(void *state) { +void mp_thread_set_state(mp_state_thread_t *state) { vTaskSetThreadLocalStoragePointer(NULL, 0, state); } diff --git a/ports/esp32/mpthreadport.c b/ports/esp32/mpthreadport.c index d7db0ff615..febd01a6aa 100644 --- a/ports/esp32/mpthreadport.c +++ b/ports/esp32/mpthreadport.c @@ -92,7 +92,7 @@ mp_state_thread_t *mp_thread_get_state(void) { return pvTaskGetThreadLocalStoragePointer(NULL, 1); } -void mp_thread_set_state(void *state) { +void mp_thread_set_state(mp_state_thread_t *state) { vTaskSetThreadLocalStoragePointer(NULL, 1, state); } diff --git a/ports/stm32/mpthreadport.h b/ports/stm32/mpthreadport.h index 8e2372dcb4..e2b39979fb 100644 --- a/ports/stm32/mpthreadport.h +++ b/ports/stm32/mpthreadport.h @@ -32,7 +32,7 @@ typedef pyb_mutex_t mp_thread_mutex_t; void mp_thread_init(void); void mp_thread_gc_others(void); -static inline void mp_thread_set_state(void *state) { +static inline void mp_thread_set_state(struct _mp_state_thread_t *state) { pyb_thread_set_local(state); } diff --git a/ports/unix/mpthreadport.c b/ports/unix/mpthreadport.c index 4fe5fa9218..b1915f2a6b 100644 --- a/ports/unix/mpthreadport.c +++ b/ports/unix/mpthreadport.c @@ -158,7 +158,7 @@ mp_state_thread_t *mp_thread_get_state(void) { return (mp_state_thread_t*)pthread_getspecific(tls_key); } -void mp_thread_set_state(void *state) { +void mp_thread_set_state(mp_state_thread_t *state) { pthread_setspecific(tls_key, state); } diff --git a/py/mpthread.h b/py/mpthread.h index 602df830c4..f2ab081e70 100644 --- a/py/mpthread.h +++ b/py/mpthread.h @@ -30,16 +30,16 @@ #if MICROPY_PY_THREAD +struct _mp_state_thread_t; + #ifdef MICROPY_MPTHREADPORT_H #include MICROPY_MPTHREADPORT_H #else #include #endif -struct _mp_state_thread_t; - struct _mp_state_thread_t *mp_thread_get_state(void); -void mp_thread_set_state(void *state); +void mp_thread_set_state(struct _mp_state_thread_t *state); void mp_thread_create(void *(*entry)(void*), void *arg, size_t *stack_size); void mp_thread_start(void); void mp_thread_finish(void);