You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

33 lines
1.1 KiB

--- axel-2.16.1/src/axel.c 2017-12-05 10:46:05.000000000 +0530
+++ axel.c 2018-03-14 19:29:42.000000000 +0530
@@ -617,7 +617,7 @@
} else {
if (gettime() > (axel->conn[i].last_transfer +
axel->conf->reconnect_delay)) {
- pthread_cancel(*axel->conn[i].setup_thread);
+ pthread_kill(*axel->conn[i].setup_thread, 0);
axel->conn[i].state = false;
pthread_join(*axel->conn[i].
setup_thread, NULL);
@@ -687,7 +687,7 @@
for (int i = 0; i < axel->conf->num_connections; i++) {
/* don't try to kill non existing thread */
if (*axel->conn[i].setup_thread != 0) {
- pthread_cancel(*axel->conn[i].setup_thread);
+ pthread_kill(*axel->conn[i].setup_thread, 0);
pthread_join(*axel->conn[i].setup_thread, NULL);
}
conn_disconnect(&axel->conn[i]);
@@ -770,9 +770,11 @@
int oldstate;
/* Allow this thread to be killed at any time. */
+#ifndef __ANDROID__
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, &oldstate);
pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, &oldstate);
+#endif
pthread_mutex_lock(&conn->lock);
if (conn_setup(conn)) {
conn->last_transfer = gettime();