Browse Source

freertos port: fix LWIP_NETCONN_SEM_PER_THREAD

master
goldsimon 8 years ago
parent
commit
ed928d0a60
  1. 13
      ports/freertos/sys_arch.c

13
ports/freertos/sys_arch.c

@ -507,11 +507,15 @@ sys_arch_netconn_sem_alloc(void)
ret = pvTaskGetThreadLocalStoragePointer(task, 0);
if(ret == NULL) {
sys_sem_t sem;
err_t err = sys_sem_new(&sem, 0);
sys_sem_t *sem;
err_t err;
/* need to allocate the memory for this semaphore */
sem = mem_malloc(sizeof(sys_sem_t));
LWIP_ASSERT("sem != NULL", sem != NULL);
err = sys_sem_new(sem, 0);
LWIP_ASSERT("err == ERR_OK", err == ERR_OK);
LWIP_ASSERT("sem invalid", sys_sem_valid_val(sem));
vTaskSetThreadLocalStoragePointer(task, 0, &sem);
LWIP_ASSERT("sem invalid", sys_sem_valid(sem));
vTaskSetThreadLocalStoragePointer(task, 0, sem);
}
}
@ -525,6 +529,7 @@ void sys_arch_netconn_sem_free(void)
if(ret != NULL) {
sys_sem_t *sem = ret;
sys_sem_free(sem);
mem_free(sem);
vTaskSetThreadLocalStoragePointer(task, 0, NULL);
}
}

Loading…
Cancel
Save