on stock android, pthread_cancel and phtread_setcancelstate doesn't exist
Change-Id: Icbe281a301004ae2bcda4821a50fb4a41088e85d
This commit is contained in:
committed by
Gerrit Code Review
parent
4e2ec811ba
commit
60bf94ec27
@@ -4579,7 +4579,11 @@ void fuse_stop_cleanup_thread(struct fuse *f)
|
||||
{
|
||||
if (lru_enabled(f)) {
|
||||
pthread_mutex_lock(&f->lock);
|
||||
#ifndef ANDROID
|
||||
pthread_cancel(f->prune_thread);
|
||||
#else
|
||||
pthread_kill(f->prune_thread, SIGUSR1);
|
||||
#endif
|
||||
pthread_mutex_unlock(&f->lock);
|
||||
pthread_join(f->prune_thread, NULL);
|
||||
}
|
||||
|
||||
@@ -81,9 +81,13 @@ static void *fuse_do_work(void *data)
|
||||
};
|
||||
int res;
|
||||
|
||||
#ifndef ANDROID
|
||||
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
|
||||
#endif
|
||||
res = fuse_session_receive_buf(mt->se, &fbuf, &ch);
|
||||
#ifndef ANDROID
|
||||
pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL);
|
||||
#endif
|
||||
if (res == -EINTR)
|
||||
continue;
|
||||
if (res <= 0) {
|
||||
@@ -245,8 +249,13 @@ int fuse_session_loop_mt(struct fuse_session *se)
|
||||
while (!fuse_session_exited(se))
|
||||
sem_wait(&mt.finish);
|
||||
|
||||
#ifndef ANDROID
|
||||
for (w = mt.main.next; w != &mt.main; w = w->next)
|
||||
pthread_cancel(w->thread_id);
|
||||
#else
|
||||
for (w = mt.main.next; w != &mt.main; w = w->next)
|
||||
pthread_kill(w->thread_id, SIGUSR1);
|
||||
#endif
|
||||
mt.exit = 1;
|
||||
|
||||
while (mt.main.next != &mt.main)
|
||||
|
||||
Reference in New Issue
Block a user