Skip to content
  • Izumi Tsutsui's avatar
    79761c66
    semaphore: fix a hangup problem under load on NetBSD hosts. · 79761c66
    Izumi Tsutsui authored
    
    
    Fix following bugs in "fallback implementation of counting semaphores
    with mutex+condvar" added in c166cb72:
     - waiting threads are not restarted properly if more than one threads
       are waiting unblock signals in qemu_sem_timedwait()
     - possible missing pthread_cond_signal(3) calls when waiting threads
       are returned by ETIMEDOUT
     - fix an uninitialized variable
    The problem is analyzed by and fix is provided by Noriyuki Soda.
    
    Also put additional cleanup suggested by Laszlo Ersek:
     - make QemuSemaphore.count unsigned (it won't be negative)
     - check a return value of in pthread_cond_wait() in qemu_sem_wait()
    
    Signed-off-by: default avatarIzumi Tsutsui <tsutsui@ceres.dti.ne.jp>
    Reviewed-by: default avatarLaszlo Ersek <lersek@redhat.com>
    Message-id: 1372841894-10634-1-git-send-email-tsutsui@ceres.dti.ne.jp
    Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
    79761c66
    semaphore: fix a hangup problem under load on NetBSD hosts.
    Izumi Tsutsui authored
    
    
    Fix following bugs in "fallback implementation of counting semaphores
    with mutex+condvar" added in c166cb72:
     - waiting threads are not restarted properly if more than one threads
       are waiting unblock signals in qemu_sem_timedwait()
     - possible missing pthread_cond_signal(3) calls when waiting threads
       are returned by ETIMEDOUT
     - fix an uninitialized variable
    The problem is analyzed by and fix is provided by Noriyuki Soda.
    
    Also put additional cleanup suggested by Laszlo Ersek:
     - make QemuSemaphore.count unsigned (it won't be negative)
     - check a return value of in pthread_cond_wait() in qemu_sem_wait()
    
    Signed-off-by: default avatarIzumi Tsutsui <tsutsui@ceres.dti.ne.jp>
    Reviewed-by: default avatarLaszlo Ersek <lersek@redhat.com>
    Message-id: 1372841894-10634-1-git-send-email-tsutsui@ceres.dti.ne.jp
    Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
Loading