From ed4bf5220e836adac7a26a5ac15136bc7c9dc6dc Mon Sep 17 00:00:00 2001 From: Kevin Bracey Date: Thu, 4 Jul 2019 15:37:47 +0300 Subject: [PATCH] rtos: NULL -> nullptr Some build errors seen with NULL not being defined. Rather than add cstddef includes, switch to C++11 nullptr. --- rtos/ConditionVariable.cpp | 18 +++++----- rtos/EventFlags.h | 2 +- rtos/Mail.h | 12 +++---- rtos/MemoryPool.h | 20 +++++------ rtos/Mutex.h | 2 +- rtos/Queue.h | 4 +-- rtos/RtosTimer.h | 4 +-- rtos/Semaphore.cpp | 2 +- rtos/TARGET_CORTEX/mbed_rtx_idle.cpp | 4 +-- rtos/ThisThread.cpp | 6 ++-- rtos/ThisThread.h | 4 +-- rtos/Thread.cpp | 34 +++++++++--------- rtos/Thread.h | 52 ++++++++++++++-------------- 13 files changed, 82 insertions(+), 82 deletions(-) diff --git a/rtos/ConditionVariable.cpp b/rtos/ConditionVariable.cpp index e1087fe0a7..f4e03701d5 100644 --- a/rtos/ConditionVariable.cpp +++ b/rtos/ConditionVariable.cpp @@ -30,12 +30,12 @@ namespace rtos { -ConditionVariable::Waiter::Waiter(): sem(0), prev(NULL), next(NULL), in_list(false) +ConditionVariable::Waiter::Waiter(): sem(0), prev(nullptr), next(nullptr), in_list(false) { // No initialization to do } -ConditionVariable::ConditionVariable(Mutex &mutex): _mutex(mutex), _wait_list(NULL) +ConditionVariable::ConditionVariable(Mutex &mutex): _mutex(mutex), _wait_list(nullptr) { // No initialization to do } @@ -86,7 +86,7 @@ bool ConditionVariable::wait_until(uint64_t millisec) void ConditionVariable::notify_one() { MBED_ASSERT(_mutex.get_owner() == ThisThread::get_id()); - if (_wait_list != NULL) { + if (_wait_list != nullptr) { _wait_list->sem.release(); _remove_wait_list(&_wait_list, _wait_list); } @@ -95,7 +95,7 @@ void ConditionVariable::notify_one() void ConditionVariable::notify_all() { MBED_ASSERT(_mutex.get_owner() == ThisThread::get_id()); - while (_wait_list != NULL) { + while (_wait_list != nullptr) { _wait_list->sem.release(); _remove_wait_list(&_wait_list, _wait_list); } @@ -103,7 +103,7 @@ void ConditionVariable::notify_all() void ConditionVariable::_add_wait_list(Waiter **wait_list, Waiter *waiter) { - if (NULL == *wait_list) { + if (nullptr == *wait_list) { // Nothing in the list so add it directly. // Update prev and next pointer to reference self *wait_list = waiter; @@ -137,18 +137,18 @@ void ConditionVariable::_remove_wait_list(Waiter **wait_list, Waiter *waiter) if (*wait_list == waiter) { // This was the last element in the list - *wait_list = NULL; + *wait_list = nullptr; } // Invalidate pointers - waiter->next = NULL; - waiter->prev = NULL; + waiter->next = nullptr; + waiter->prev = nullptr; waiter->in_list = false; } ConditionVariable::~ConditionVariable() { - MBED_ASSERT(NULL == _wait_list); + MBED_ASSERT(nullptr == _wait_list); } } diff --git a/rtos/EventFlags.h b/rtos/EventFlags.h index 0c2798d4a9..2ac7c1ee2f 100644 --- a/rtos/EventFlags.h +++ b/rtos/EventFlags.h @@ -112,7 +112,7 @@ public: ~EventFlags(); private: - void constructor(const char *name = NULL); + void constructor(const char *name = nullptr); uint32_t wait(uint32_t flags, uint32_t opt, uint32_t millisec, bool clear); #if MBED_CONF_RTOS_PRESENT osEventFlagsId_t _id; diff --git a/rtos/Mail.h b/rtos/Mail.h index 85607dc45e..67b6b0212a 100644 --- a/rtos/Mail.h +++ b/rtos/Mail.h @@ -97,7 +97,7 @@ public: * * @param millisec Not used (see note). * - * @return Pointer to memory block that you can fill with mail or NULL in case error. + * @return Pointer to memory block that you can fill with mail or nullptr in case error. * * @note You may call this function from ISR context. * @note If blocking is required, use Mail::alloc_for or Mail::alloc_until @@ -111,7 +111,7 @@ public: * * @param millisec Timeout value, or osWaitForever. * - * @return Pointer to memory block that you can fill with mail or NULL in case error. + * @return Pointer to memory block that you can fill with mail or nullptr in case error. * * @note You may call this function from ISR context if the millisec parameter is set to 0. */ @@ -124,7 +124,7 @@ public: * * @param millisec Absolute timeout time, referenced to Kernel::get_ms_count(). * - * @return Pointer to memory block that you can fill with mail or NULL in case error. + * @return Pointer to memory block that you can fill with mail or nullptr in case error. * * @note You cannot call this function from ISR context. * @note the underlying RTOS may have a limit to the maximum wait time @@ -141,7 +141,7 @@ public: * * @param millisec Not used (see note). * - * @return Pointer to memory block that you can fill with mail or NULL in case error. + * @return Pointer to memory block that you can fill with mail or nullptr in case error. * * @note You may call this function from ISR context if the millisec parameter is set to 0. * @note If blocking is required, use Mail::calloc_for or Mail::calloc_until @@ -155,7 +155,7 @@ public: * * @param millisec Timeout value, or osWaitForever. * - * @return Pointer to memory block that you can fill with mail or NULL in case error. + * @return Pointer to memory block that you can fill with mail or nullptr in case error. * * @note You may call this function from ISR context if the millisec parameter is set to 0. */ @@ -168,7 +168,7 @@ public: * * @param millisec Absolute timeout time, referenced to Kernel::get_ms_count(). * - * @return Pointer to memory block that you can fill with mail or NULL in case error. + * @return Pointer to memory block that you can fill with mail or nullptr in case error. * * @note You cannot call this function from ISR context. * @note the underlying RTOS may have a limit to the maximum wait time diff --git a/rtos/MemoryPool.h b/rtos/MemoryPool.h index 6764d12237..6196096a84 100644 --- a/rtos/MemoryPool.h +++ b/rtos/MemoryPool.h @@ -77,7 +77,7 @@ public: } /** Allocate a memory block from a memory pool, without blocking. - @return address of the allocated memory block or NULL in case of no memory available. + @return address of the allocated memory block or nullptr in case of no memory available. @note You may call this function from ISR context. */ @@ -88,7 +88,7 @@ public: /** Allocate a memory block from a memory pool, optionally blocking. @param millisec timeout value (osWaitForever to wait forever) - @return address of the allocated memory block or NULL in case of no memory available. + @return address of the allocated memory block or nullptr in case of no memory available. @note You may call this function from ISR context if the millisec parameter is set to 0. */ @@ -99,7 +99,7 @@ public: /** Allocate a memory block from a memory pool, blocking. @param millisec absolute timeout time, referenced to Kernel::get_ms_count(). - @return address of the allocated memory block or NULL in case of no memory available. + @return address of the allocated memory block or nullptr in case of no memory available. @note You cannot call this function from ISR context. @note the underlying RTOS may have a limit to the maximum wait time @@ -122,14 +122,14 @@ public: } /** Allocate a memory block from a memory pool, without blocking, and set memory block to zero. - @return address of the allocated memory block or NULL in case of no memory available. + @return address of the allocated memory block or nullptr in case of no memory available. @note You may call this function from ISR context. */ T *calloc(void) { T *item = alloc(); - if (item != NULL) { + if (item != nullptr) { memset(item, 0, sizeof(T)); } return item; @@ -137,14 +137,14 @@ public: /** Allocate a memory block from a memory pool, optionally blocking, and set memory block to zero. @param millisec timeout value (osWaitForever to wait forever) - @return address of the allocated memory block or NULL in case of no memory available. + @return address of the allocated memory block or nullptr in case of no memory available. @note You may call this function from ISR context if the millisec parameter is set to 0. */ T *calloc_for(uint32_t millisec) { T *item = alloc_for(millisec); - if (item != NULL) { + if (item != nullptr) { memset(item, 0, sizeof(T)); } return item; @@ -152,7 +152,7 @@ public: /** Allocate a memory block from a memory pool, blocking, and set memory block to zero. @param millisec absolute timeout time, referenced to Kernel::get_ms_count(). - @return address of the allocated memory block or NULL in case of no memory available. + @return address of the allocated memory block or nullptr in case of no memory available. @note You cannot call this function from ISR context. @note the underlying RTOS may have a limit to the maximum wait time @@ -163,7 +163,7 @@ public: T *calloc_until(uint64_t millisec) { T *item = alloc_until(millisec); - if (item != NULL) { + if (item != nullptr) { memset(item, 0, sizeof(T)); } return item; @@ -172,7 +172,7 @@ public: /** Free a memory block. @param block address of the allocated memory block to be freed. @return osOK on successful deallocation, osErrorParameter if given memory block id - is NULL or invalid, or osErrorResource if given memory block is in an + is nullptr or invalid, or osErrorResource if given memory block is in an invalid memory pool state. @note You may call this function from ISR context. diff --git a/rtos/Mutex.h b/rtos/Mutex.h index aeddf02924..2a48e2dec2 100644 --- a/rtos/Mutex.h +++ b/rtos/Mutex.h @@ -177,7 +177,7 @@ public: private: #if MBED_CONF_RTOS_PRESENT - void constructor(const char *name = NULL); + void constructor(const char *name = nullptr); friend class ConditionVariable; osMutexId_t _id; diff --git a/rtos/Queue.h b/rtos/Queue.h index 1ce8eb354a..7e0149634f 100644 --- a/rtos/Queue.h +++ b/rtos/Queue.h @@ -187,8 +187,8 @@ public: osEvent get(uint32_t millisec = osWaitForever) { osEvent event; - T *data = NULL; - osStatus_t res = osMessageQueueGet(_id, &data, NULL, millisec); + T *data = nullptr; + osStatus_t res = osMessageQueueGet(_id, &data, nullptr, millisec); switch (res) { case osOK: diff --git a/rtos/RtosTimer.h b/rtos/RtosTimer.h index 74e7c7ef86..dfff795574 100644 --- a/rtos/RtosTimer.h +++ b/rtos/RtosTimer.h @@ -91,7 +91,7 @@ public: /** Create timer. @param func function to be executed by this timer. @param type osTimerOnce for one-shot or osTimerPeriodic for periodic behavior. (default: osTimerPeriodic) - @param argument argument to the timer call back function. (default: NULL) + @param argument argument to the timer call back function. (default: nullptr) @deprecated Replaced with RtosTimer(Callback, os_timer_type) @deprecated The RtosTimer has been superseded by the EventQueue. See RtosTimer.h for more details @@ -102,7 +102,7 @@ public: "Replaced with RtosTimer(Callback, os_timer_type)") MBED_DEPRECATED_SINCE("mbed-os-5.2", "The RtosTimer has been superseded by the EventQueue. See RtosTimer.h for more details") - RtosTimer(void (*func)(void const *argument), os_timer_type type = osTimerPeriodic, void *argument = NULL) + RtosTimer(void (*func)(void const *argument), os_timer_type type = osTimerPeriodic, void *argument = nullptr) { constructor(mbed::callback((void (*)(void *))func, argument), type); } diff --git a/rtos/Semaphore.cpp b/rtos/Semaphore.cpp index 6887ac247f..8ae83c9f69 100644 --- a/rtos/Semaphore.cpp +++ b/rtos/Semaphore.cpp @@ -47,7 +47,7 @@ void Semaphore::constructor(int32_t count, uint16_t max_count) attr.cb_mem = &_obj_mem; attr.cb_size = sizeof(_obj_mem); _id = osSemaphoreNew(max_count, count, &attr); - MBED_ASSERT(_id != NULL); + MBED_ASSERT(_id != nullptr); #else _count = count; _max_count = max_count; diff --git a/rtos/TARGET_CORTEX/mbed_rtx_idle.cpp b/rtos/TARGET_CORTEX/mbed_rtx_idle.cpp index 52b7efede9..6d4431d8d9 100644 --- a/rtos/TARGET_CORTEX/mbed_rtx_idle.cpp +++ b/rtos/TARGET_CORTEX/mbed_rtx_idle.cpp @@ -159,8 +159,8 @@ extern "C" { void rtos_attach_idle_hook(void (*fptr)(void)) { - //Attach the specified idle hook, or the default idle hook in case of a NULL pointer - if (fptr != NULL) { + //Attach the specified idle hook, or the default idle hook in case of a null pointer + if (fptr != nullptr) { idle_hook_fptr = fptr; } else { idle_hook_fptr = default_idle_hook; diff --git a/rtos/ThisThread.cpp b/rtos/ThisThread.cpp index 50286c214d..4d7fb052e3 100644 --- a/rtos/ThisThread.cpp +++ b/rtos/ThisThread.cpp @@ -242,12 +242,12 @@ const char *get_name() { #if MBED_CONF_RTOS_PRESENT osThreadId_t id = osThreadGetId(); - if (id == NULL) { - return NULL; + if (id == nullptr) { + return nullptr; } return osThreadGetName(id); #else - return NULL; + return nullptr; #endif } diff --git a/rtos/ThisThread.h b/rtos/ThisThread.h index c7278c7f6c..b3a67a62f2 100644 --- a/rtos/ThisThread.h +++ b/rtos/ThisThread.h @@ -169,13 +169,13 @@ void sleep_until(uint64_t millisec); void yield(); /** Get the thread id of the current running thread. - @return thread ID for reference by other functions or NULL in case of error or in ISR context. + @return thread ID for reference by other functions or nullptr in case of error or in ISR context. @note You may call this function from ISR context. */ osThreadId_t get_id(); /** Get the thread name of the current running thread. - @return thread name pointer or NULL if thread has no name or in case of error. + @return thread name pointer or nullptr if thread has no name or in case of error. @note You cannot call this function from ISR context. */ const char *get_name(); diff --git a/rtos/Thread.cpp b/rtos/Thread.cpp index 80827ab52d..c3eb83dd50 100644 --- a/rtos/Thread.cpp +++ b/rtos/Thread.cpp @@ -52,7 +52,7 @@ void Thread::constructor(uint32_t tz_module, osPriority priority, const uint32_t aligned_size = ALIGN_DOWN(stack_size - offset, 8); _tid = 0; - _dynamic_stack = (stack_mem == NULL); + _dynamic_stack = (stack_mem == nullptr); _finished = false; memset(&_attr, 0, sizeof(_attr)); _attr.priority = priority; @@ -96,9 +96,9 @@ osStatus Thread::start(mbed::Callback task) return osErrorParameter; } - if (_attr.stack_mem == NULL) { + if (_attr.stack_mem == nullptr) { _attr.stack_mem = new uint32_t[_attr.stack_size / sizeof(uint32_t)]; - MBED_ASSERT(_attr.stack_mem != NULL); + MBED_ASSERT(_attr.stack_mem != nullptr); } //Fill the stack with a magic word for maximum usage checking @@ -111,10 +111,10 @@ osStatus Thread::start(mbed::Callback task) _attr.cb_mem = &_obj_mem; _task = task; _tid = osThreadNew(Thread::_thunk, this, &_attr); - if (_tid == NULL) { + if (_tid == nullptr) { if (_dynamic_stack) { - delete[](uint32_t *)(_attr.stack_mem); - _attr.stack_mem = (uint32_t *)NULL; + delete[] _attr.stack_mem; + _attr.stack_mem = nullptr; } _mutex.unlock(); _join_sem.release(); @@ -130,12 +130,12 @@ osStatus Thread::terminate() osStatus_t ret = osOK; _mutex.lock(); - // Set the Thread's tid to NULL and + // Set the Thread's tid to nullptr and // release the semaphore before terminating // since this thread could be terminating itself osThreadId_t local_id = _tid; _join_sem.release(); - _tid = (osThreadId_t)NULL; + _tid = nullptr; if (!_finished) { _finished = true; // if local_id == 0 Thread was not started in first place @@ -156,7 +156,7 @@ osStatus Thread::join() // terminated or has been terminated. Once the mutex has // been locked it is ensured that the thread is deleted. _mutex.lock(); - MBED_ASSERT(NULL == _tid); + MBED_ASSERT(nullptr == _tid); _mutex.unlock(); // Release sem so any other threads joining this thread wake up @@ -204,7 +204,7 @@ Thread::State Thread::get_state() const _mutex.lock(); - if (_tid != NULL) { + if (_tid != nullptr) { #if defined(MBED_OS_BACKEND_RTX5) state = _obj_mem.state; #else @@ -269,7 +269,7 @@ uint32_t Thread::stack_size() const uint32_t size = 0; _mutex.lock(); - if (_tid != NULL) { + if (_tid != nullptr) { size = osThreadGetStackSize(_tid); } @@ -283,7 +283,7 @@ uint32_t Thread::free_stack() const _mutex.lock(); #if defined(MBED_OS_BACKEND_RTX5) - if (_tid != NULL) { + if (_tid != nullptr) { mbed_rtos_storage_thread_t *thread = (mbed_rtos_storage_thread_t *)_tid; size = (uint32_t)thread->sp - (uint32_t)thread->stack_mem; } @@ -299,7 +299,7 @@ uint32_t Thread::used_stack() const _mutex.lock(); #if defined(MBED_OS_BACKEND_RTX5) - if (_tid != NULL) { + if (_tid != nullptr) { mbed_rtos_storage_thread_t *thread = (mbed_rtos_storage_thread_t *)_tid; size = ((uint32_t)thread->stack_mem + thread->stack_size) - thread->sp; } @@ -314,7 +314,7 @@ uint32_t Thread::max_stack() const uint32_t size = 0; _mutex.lock(); - if (_tid != NULL) { + if (_tid != nullptr) { #if defined(MBED_OS_BACKEND_RTX5) mbed_rtos_storage_thread_t *thread = (mbed_rtos_storage_thread_t *)_tid; uint32_t high_mark = 0; @@ -417,8 +417,8 @@ Thread::~Thread() // terminate is thread safe terminate(); if (_dynamic_stack) { - delete[](uint32_t *)(_attr.stack_mem); - _attr.stack_mem = (uint32_t *)NULL; + delete[] _attr.stack_mem; + _attr.stack_mem = nullptr; } } @@ -427,7 +427,7 @@ void Thread::_thunk(void *thread_ptr) Thread *t = (Thread *)thread_ptr; t->_task(); t->_mutex.lock(); - t->_tid = (osThreadId)NULL; + t->_tid = nullptr; t->_finished = true; t->_join_sem.release(); // rtos will release the mutex automatically diff --git a/rtos/Thread.h b/rtos/Thread.h index f9e25d6f47..f272a5d600 100644 --- a/rtos/Thread.h +++ b/rtos/Thread.h @@ -89,8 +89,8 @@ public: /** Allocate a new thread without starting execution @param priority initial priority of the thread function. (default: osPriorityNormal). @param stack_size stack size (in bytes) requirements for the thread function. (default: OS_STACK_SIZE). - @param stack_mem pointer to the stack area to be used by this thread (default: NULL). - @param name name to be used for this thread. It has to stay allocated for the lifetime of the thread (default: NULL) + @param stack_mem pointer to the stack area to be used by this thread (default: nullptr). + @param name name to be used for this thread. It has to stay allocated for the lifetime of the thread (default: nullptr) @note Default value of tz_module will be MBED_TZ_DEFAULT_ACCESS @note You cannot call this function from ISR context. @@ -98,7 +98,7 @@ public: Thread(osPriority priority = osPriorityNormal, uint32_t stack_size = OS_STACK_SIZE, - unsigned char *stack_mem = NULL, const char *name = NULL) + unsigned char *stack_mem = nullptr, const char *name = nullptr) { constructor(priority, stack_size, stack_mem, name); } @@ -110,15 +110,15 @@ public: threads not using secure calls at all. See "TrustZone RTOS Context Management" for more details. @param priority initial priority of the thread function. (default: osPriorityNormal). @param stack_size stack size (in bytes) requirements for the thread function. (default: OS_STACK_SIZE). - @param stack_mem pointer to the stack area to be used by this thread (default: NULL). - @param name name to be used for this thread. It has to stay allocated for the lifetime of the thread (default: NULL) + @param stack_mem pointer to the stack area to be used by this thread (default: nullptr). + @param name name to be used for this thread. It has to stay allocated for the lifetime of the thread (default: nullptr) @note You cannot call this function from ISR context. */ Thread(uint32_t tz_module, osPriority priority = osPriorityNormal, uint32_t stack_size = OS_STACK_SIZE, - unsigned char *stack_mem = NULL, const char *name = NULL) + unsigned char *stack_mem = nullptr, const char *name = nullptr) { constructor(tz_module, priority, stack_size, stack_mem, name); } @@ -128,7 +128,7 @@ public: @param task function to be executed by this thread. @param priority initial priority of the thread function. (default: osPriorityNormal). @param stack_size stack size (in bytes) requirements for the thread function. (default: OS_STACK_SIZE). - @param stack_mem pointer to the stack area to be used by this thread (default: NULL). + @param stack_mem pointer to the stack area to be used by this thread (default: nullptr). @deprecated Thread-spawning constructors hide errors. Replaced by thread.start(task). @@ -149,17 +149,17 @@ public: Thread(mbed::Callback task, osPriority priority = osPriorityNormal, uint32_t stack_size = OS_STACK_SIZE, - unsigned char *stack_mem = NULL) + unsigned char *stack_mem = nullptr) { constructor(task, priority, stack_size, stack_mem); } /** Create a new thread, and start it executing the specified function. - @param argument pointer that is passed to the thread function as start argument. (default: NULL). + @param argument pointer that is passed to the thread function as start argument. (default: nullptr). @param task argument to task. @param priority initial priority of the thread function. (default: osPriorityNormal). @param stack_size stack size (in bytes) requirements for the thread function. (default: OS_STACK_SIZE). - @param stack_mem pointer to the stack area to be used by this thread (default: NULL). + @param stack_mem pointer to the stack area to be used by this thread (default: nullptr). @deprecated Thread-spawning constructors hide errors. Replaced by thread.start(callback(task, argument)). @@ -181,18 +181,18 @@ public: Thread(T *argument, void (T::*task)(), osPriority priority = osPriorityNormal, uint32_t stack_size = OS_STACK_SIZE, - unsigned char *stack_mem = NULL) + unsigned char *stack_mem = nullptr) { constructor(mbed::callback(task, argument), priority, stack_size, stack_mem); } /** Create a new thread, and start it executing the specified function. - @param argument pointer that is passed to the thread function as start argument. (default: NULL). + @param argument pointer that is passed to the thread function as start argument. (default: nullptr). @param task argument to task. @param priority initial priority of the thread function. (default: osPriorityNormal). @param stack_size stack size (in bytes) requirements for the thread function. (default: OS_STACK_SIZE). - @param stack_mem pointer to the stack area to be used by this thread (default: NULL). + @param stack_mem pointer to the stack area to be used by this thread (default: nullptr). @deprecated Thread-spawning constructors hide errors. Replaced by thread.start(callback(task, argument)). @@ -214,7 +214,7 @@ public: Thread(T *argument, void (*task)(T *), osPriority priority = osPriorityNormal, uint32_t stack_size = OS_STACK_SIZE, - unsigned char *stack_mem = NULL) + unsigned char *stack_mem = nullptr) { constructor(mbed::callback(task, argument), priority, stack_size, stack_mem); @@ -223,10 +223,10 @@ public: /** Create a new thread, and start it executing the specified function. Provided for backwards compatibility @param task function to be executed by this thread. - @param argument pointer that is passed to the thread function as start argument. (default: NULL). + @param argument pointer that is passed to the thread function as start argument. (default: nullptr). @param priority initial priority of the thread function. (default: osPriorityNormal). @param stack_size stack size (in bytes) requirements for the thread function. (default: OS_STACK_SIZE). - @param stack_mem pointer to the stack area to be used by this thread (default: NULL). + @param stack_mem pointer to the stack area to be used by this thread (default: nullptr). @deprecated Thread-spawning constructors hide errors. Replaced by thread.start(callback(task, argument)). @@ -244,10 +244,10 @@ public: MBED_DEPRECATED_SINCE("mbed-os-5.1", "Thread-spawning constructors hide errors. " "Replaced by thread.start(callback(task, argument)).") - Thread(void (*task)(void const *argument), void *argument = NULL, + Thread(void (*task)(void const *argument), void *argument = nullptr, osPriority priority = osPriorityNormal, uint32_t stack_size = OS_STACK_SIZE, - unsigned char *stack_mem = NULL) + unsigned char *stack_mem = nullptr) { constructor(mbed::callback((void (*)(void *))task, argument), priority, stack_size, stack_mem); @@ -389,7 +389,7 @@ public: uint32_t max_stack() const; /** Get thread name - @return thread name or NULL if the name was not set. + @return thread name or nullptr if the name was not set. @note You may call this function from ISR context. */ @@ -475,7 +475,7 @@ public: static osStatus yield(); /** Get the thread id of the current running thread. - @return thread ID for reference by other functions or NULL in case of error. + @return thread ID for reference by other functions or nullptr in case of error. @note You may call this function from ISR context. @deprecated Static methods only affecting current thread cause confusion. Replaced by ThisThread::get_id. @@ -519,18 +519,18 @@ private: // delegated constructors void constructor(osPriority priority = osPriorityNormal, uint32_t stack_size = OS_STACK_SIZE, - unsigned char *stack_mem = NULL, - const char *name = NULL); + unsigned char *stack_mem = nullptr, + const char *name = nullptr); void constructor(mbed::Callback task, osPriority priority = osPriorityNormal, uint32_t stack_size = OS_STACK_SIZE, - unsigned char *stack_mem = NULL, - const char *name = NULL); + unsigned char *stack_mem = nullptr, + const char *name = nullptr); void constructor(uint32_t tz_module, osPriority priority = osPriorityNormal, uint32_t stack_size = OS_STACK_SIZE, - unsigned char *stack_mem = NULL, - const char *name = NULL); + unsigned char *stack_mem = nullptr, + const char *name = nullptr); static void _thunk(void *thread_ptr); mbed::Callback _task;