Print this page
3909 Fix hang when sending dedup stream

*** 1564,1575 **** err = ENOENT; if (tid != 0) { if (err != 0) (void) pthread_cancel(tid); - (void) pthread_join(tid, NULL); (void) close(pipefd[0]); } if (sdd.cleanup_fd != -1) { VERIFY(0 == close(sdd.cleanup_fd)); sdd.cleanup_fd = -1; --- 1564,1575 ---- err = ENOENT; if (tid != 0) { if (err != 0) (void) pthread_cancel(tid); (void) close(pipefd[0]); + (void) pthread_join(tid, NULL); } if (sdd.cleanup_fd != -1) { VERIFY(0 == close(sdd.cleanup_fd)); sdd.cleanup_fd = -1;
*** 1601,1612 **** if (sdd.cleanup_fd != -1) VERIFY(0 == close(sdd.cleanup_fd)); if (tid != 0) { (void) pthread_cancel(tid); - (void) pthread_join(tid, NULL); (void) close(pipefd[0]); } return (err); } /* --- 1601,1612 ---- if (sdd.cleanup_fd != -1) VERIFY(0 == close(sdd.cleanup_fd)); if (tid != 0) { (void) pthread_cancel(tid); (void) close(pipefd[0]); + (void) pthread_join(tid, NULL); } return (err); } /*