NetworkStack: halts if unable to add an event to the event queue

pull/9799/head
Veijo Pesonen 2019-02-21 12:51:02 +02:00
parent 39c8374760
commit 517799fd06
6 changed files with 13 additions and 3 deletions

View File

@ -21,6 +21,7 @@ set(unittest-test-sources
stubs/mbed_critical_stub.c
stubs/equeue_stub.c
stubs/EventQueue_stub.cpp
stubs/mbed_error.c
stubs/mbed_shared_queues_stub.cpp
stubs/nsapi_dns_stub.cpp
stubs/EventFlags_stub.cpp

View File

@ -24,6 +24,7 @@ set(unittest-test-sources
stubs/mbed_assert_stub.c
stubs/equeue_stub.c
stubs/EventQueue_stub.cpp
stubs/mbed_error.c
stubs/mbed_shared_queues_stub.cpp
stubs/nsapi_dns_stub.cpp
stubs/EventFlags_stub.cpp

View File

@ -25,6 +25,7 @@ set(unittest-test-sources
stubs/mbed_critical_stub.c
stubs/equeue_stub.c
stubs/EventQueue_stub.cpp
stubs/mbed_error.c
stubs/mbed_shared_queues_stub.cpp
stubs/nsapi_dns_stub.cpp
stubs/EventFlags_stub.cpp

View File

@ -22,6 +22,7 @@ set(unittest-test-sources
stubs/mbed_critical_stub.c
stubs/equeue_stub.c
stubs/EventQueue_stub.cpp
stubs/mbed_error.c
stubs/mbed_shared_queues_stub.cpp
stubs/nsapi_dns_stub.cpp
stubs/EventFlags_stub.cpp

View File

@ -22,6 +22,7 @@ set(unittest-test-sources
stubs/mbed_critical_stub.c
stubs/equeue_stub.c
stubs/EventQueue_stub.cpp
stubs/mbed_error.c
stubs/mbed_shared_queues_stub.cpp
stubs/EventFlags_stub.cpp
stubs/nsapi_dns_stub.cpp

View File

@ -20,6 +20,7 @@
#include <new>
#include "EventQueue.h"
#include "mbed_shared_queues.h"
#include "platform/mbed_error.h"
// Default NetworkStack operations
const char *NetworkStack::get_ip_address()
@ -126,20 +127,24 @@ nsapi_error_t NetworkStack::call_in(int delay, mbed::Callback<void()> func)
static events::EventQueue *event_queue = mbed::mbed_event_queue();
if (!event_queue) {
return NSAPI_ERROR_NO_MEMORY;
goto NO_MEM;
}
if (delay > 0) {
if (event_queue->call_in(delay, func) == 0) {
return NSAPI_ERROR_NO_MEMORY;
goto NO_MEM;
}
} else {
if (event_queue->call(func) == 0) {
return NSAPI_ERROR_NO_MEMORY;
goto NO_MEM;
}
}
return NSAPI_ERROR_OK;
NO_MEM:
MBED_ERROR(MBED_MAKE_ERROR(MBED_MODULE_DRIVER, MBED_ERROR_CODE_ENOMEM), \
"NetworkStack::call_in() unable to add event to queue. Increase \"events.shared-eventsize\"\n");
}
call_in_callback_cb_t NetworkStack::get_call_in_callback()