Merge pull request #327 from arpit-ag/master
authorpillip8282 <pilseob.kang@samsung.com>
Tue, 1 Aug 2017 08:47:38 +0000 (17:47 +0900)
committerGitHub <noreply@github.com>
Tue, 1 Aug 2017 08:47:38 +0000 (17:47 +0900)
Update sys_arch.c

1  2 
os/net/lwip/sys/arch/sys_arch.c

@@@ -144,15 -140,10 +144,13 @@@ void sys_mbox_post(sys_mbox_t *mbox, vo
                mbox->wait_send++;
                sys_sem_signal(&(mbox->mutex));
                sys_arch_sem_wait(&(mbox->mail), 0);
 -              sys_arch_sem_wait(&(mbox->mutex), 0);
 +              status = sys_arch_sem_wait(&(mbox->mutex), 0);
                mbox->wait_send--;
 +              if (status == SYS_ARCH_CANCELED) {
 +                      return;
 +              }
        }
  
-       mbox->msgs[mbox->rear] = msg;
-       LWIP_DEBUGF(SYS_DEBUG, ("Post SUCCESS\n"));
        if (mbox->rear == mbox->front) {
                first_msg = 1;
        } else {
@@@ -280,13 -268,11 +280,14 @@@ u32_t sys_arch_mbox_fetch(sys_mbox_t *m
                        sys_arch_sem_wait(&(mbox->mail), 0);
                }
  
 -              sys_arch_sem_wait(&(mbox->mutex), 0);
 +              status = sys_arch_sem_wait(&(mbox->mutex), 0);
                mbox->wait_fetch--;
 +              if (status == SYS_ARCH_CANCELED) {
 +                      return SYS_ARCH_CANCELED;
 +              }               
        }
  
+       mbox->front = (mbox->front + 1) % mbox->queue_size;
        if (msg != NULL) {
                *msg = mbox->msgs[mbox->front];
                LWIP_DEBUGF(SYS_DEBUG, (" mbox %p msg %p\n", (void *)mbox, *msg));