diff options
author | Christophe Fergeau | 2014-12-11 09:20:20 +0100 |
---|---|---|
committer | Martin Szulecki | 2015-01-12 15:51:09 +0100 |
commit | 1d9e6e351b51e7401898dde96418c0ee10ad878f (patch) | |
tree | 3e7aebd142e5f8341d20494a07c4e8333f778599 /common/socket.c | |
parent | ae637ea04cd63cb98587f9bb290b93c3a476d32b (diff) | |
download | libimobiledevice-1d9e6e351b51e7401898dde96418c0ee10ad878f.tar.gz libimobiledevice-1d9e6e351b51e7401898dde96418c0ee10ad878f.tar.bz2 |
Fix overlong blocking in np_client_free()
When using ideviceinstaller, np_client_free() would block for several
minutes when ideviceinstaller cleans up after installing the
application.
This happens because the function is blocking on thread_join(), waiting
for the notification watcher thread to finish. It only ends when
np_get_notification() returns a negative value after getting a timeout,
which takes several minutes.
However, the thread loop will also exit early if client->parent gets
NULL (the loop is iterated every 500ms), so this commit ensures
client->parent gets set to NULL early in np_client_free() so that
thread_join() does not block for a long time.
Signed-off-by: Martin Szulecki <m.szulecki@libimobiledevice.org>
Diffstat (limited to 'common/socket.c')
0 files changed, 0 insertions, 0 deletions