termux-packages/packages/speechd/speechd.patch

83 lines
2.6 KiB
Diff

--- a/src/server/speechd.c 2022-04-15 04:49:54.443394249 +0000
+++ b/src/server/speechd.c 2022-04-15 06:14:44.973486291 +0000
@@ -1353,7 +1353,7 @@
g_hash_table_destroy(fd_settings);
MSG(4, "Closing speak() thread...");
- ret = pthread_cancel(speak_thread);
+ ret = pthread_kill(speak_thread, 0);
if (ret != 0)
FATAL("Speak thread failed to cancel!\n");
--- a/src/modules/module_utils.c 2022-04-15 04:49:54.468395993 +0000
+++ b/src/modules/module_utils.c 2022-04-15 06:07:29.462108958 +0000
@@ -584,7 +584,7 @@
{
int ret;
- ret = pthread_cancel(thread);
+ ret = pthread_kill(thread, 0);
if (ret != 0) {
DBG("Cancellation of speak thread failed");
return 1;
--- a/src/audio/nas.c 2022-04-15 04:49:54.442394179 +0000
+++ b/src/audio/nas.c 2022-04-15 05:57:51.188773780 +0000
@@ -51,8 +51,6 @@
static void *_nas_handle_events(void *par)
{
spd_nas_id_t *nas_id = (spd_nas_id_t *) par;
- pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
-
while (1)
AuHandleEvents(nas_id->aud);
@@ -208,7 +206,7 @@
if (nas_id == NULL)
return -2;
- pthread_cancel(nas_id->nas_event_handler);
+ pthread_kill(nas_id->nas_event_handler,0);
pthread_join(nas_id->nas_event_handler, NULL);
pthread_mutex_destroy(&nas_id->pt_mutex);
--- a/src/api/c/libspeechd.c 2022-04-15 04:49:54.445394389 +0000
+++ b/src/api/c/libspeechd.c 2022-04-15 05:47:47.292651531 +0000
@@ -607,7 +607,7 @@
pthread_mutex_lock(&connection->ssip_mutex);
if (connection->mode == SPD_MODE_THREADED) {
- pthread_cancel(connection->td->events_thread);
+ pthread_kill(connection->td->events_thread, 0);
pthread_mutex_destroy(&connection->td->mutex_reply_ready);
pthread_mutex_destroy(&connection->td->mutex_reply_ack);
pthread_cond_destroy(&connection->td->cond_reply_ready);
--- a/src/common/common.c 2022-04-15 04:49:54.442394179 +0000
+++ b/src/common/common.c 2022-04-15 14:25:51.987242432 +0000
@@ -49,6 +49,4 @@
void set_speaking_thread_parameters(void)
{
- pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
- pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
}
--- a/src/server/output.c 2022-04-15 04:49:54.443394249 +0000
+++ b/src/server/output.c 2022-04-15 14:30:36.748824687 +0000
@@ -218,8 +218,6 @@
void
static output_lock(void)
{
- if (pthread_self() == speak_thread)
- pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &oldstate);
pthread_mutex_lock(&output_layer_mutex);
}
@@ -227,8 +225,6 @@
static output_unlock(void)
{
pthread_mutex_unlock(&output_layer_mutex);
- if (pthread_self() == speak_thread)
- pthread_setcancelstate(oldstate, NULL);
}
#define OL_RET(value) \