Browse Source

Start working on task #14780: Add debug helper asserts to ensure threading/locking requirements are met

master
Dirk Ziegelmeier 8 years ago
parent
commit
a334ca484a
  1. 7
      ports/win32/include/lwipopts.h
  2. 24
      ports/win32/sys_arch.c

7
ports/win32/include/lwipopts.h

@ -64,7 +64,12 @@
#define LWIP_SO_RCVTIMEO 1
#define LWIP_SO_RCVBUF 1
#define LWIP_TCPIP_CORE_LOCKING 1
#define LWIP_TCPIP_CORE_LOCKING 0
void sys_check_core_locking(void);
#define LWIP_ASSERT_CORE_LOCKED() sys_check_core_locking()
void sys_mark_tcpip_thread(void);
#define LWIP_MARK_TCPIP_THREAD() sys_mark_tcpip_thread()
#define LWIP_NETIF_LINK_CALLBACK 1
#define LWIP_NETIF_STATUS_CALLBACK 1

24
ports/win32/sys_arch.c

@ -439,6 +439,30 @@ sys_thread_t sys_thread_new(const char *name, lwip_thread_fn function, void *arg
return 0;
}
#if LWIP_TCPIP_CORE_LOCKING
void sys_mark_tcpip_thread(void)
{
}
void sys_check_core_locking(void)
{
}
#else
static DWORD lwip_tcpip_thread_id;
void sys_mark_tcpip_thread(void)
{
lwip_tcpip_thread_id = GetCurrentThreadId();
}
void sys_check_core_locking(void)
{
if (lwip_tcpip_thread_id != 0) {
DWORD current_thread_id = GetCurrentThreadId();
LWIP_ASSERT("Function called from wrong thread", current_thread_id == lwip_tcpip_thread_id);
}
}
#endif
err_t sys_mbox_new(sys_mbox_t *mbox, int size)
{
LWIP_ASSERT("mbox != NULL", mbox != NULL);

Loading…
Cancel
Save