diff --git a/src/audacious/signals.cc b/src/audacious/signals.cc index 35c1011..949f3b9 100644 --- a/src/audacious/signals.cc +++ b/src/audacious/signals.cc @@ -21,8 +21,11 @@ #include #include +#include +#include #include +#include #include "main.h" @@ -53,7 +56,8 @@ void signals_init_one () void signals_init_two () { pthread_t thread; - pthread_create (& thread, nullptr, signal_thread, nullptr); + if (pthread_create (& thread, nullptr, signal_thread, nullptr) != 0) + AUDERR ("Can not create thread: %s!\n", strerror(errno)); } #endif /* HAVE_SIGWAIT */ diff --git a/src/libaudcore/adder.cc b/src/libaudcore/adder.cc index f9d9bca..d0d1321 100644 --- a/src/libaudcore/adder.cc +++ b/src/libaudcore/adder.cc @@ -22,6 +22,7 @@ #include #include +#include #include #include "audstrings.h" @@ -35,6 +36,7 @@ #include "tuple.h" #include "interface.h" #include "vfs.h" +#include "runtime.h" // regrettably, strcmp_nocase can't be used directly as a // callback for Index::sort due to taking a third argument; @@ -361,7 +363,8 @@ static void start_thread_locked () if (! add_thread_started || add_thread_exited) { - pthread_create (& add_thread, nullptr, add_worker, nullptr); + if (pthread_create (& add_thread, nullptr, add_worker, nullptr) != 0) + AUDERR ("Can not create thread: %s!\n", strerror(errno)); add_thread_started = true; add_thread_exited = false; } diff --git a/src/libaudcore/playback.cc b/src/libaudcore/playback.cc index aea3b1b..2d3e0ff 100644 --- a/src/libaudcore/playback.cc +++ b/src/libaudcore/playback.cc @@ -39,6 +39,8 @@ #include #include +#include +#include #include "audstrings.h" #include "hook.h" @@ -447,7 +449,8 @@ void playback_play (int seek_time, bool pause) else { pthread_t thread; - pthread_create (& thread, nullptr, playback_thread, nullptr); + if (pthread_create (& thread, nullptr, playback_thread, nullptr) != 0) + AUDERR ("Can not create thread: %s!\n", strerror(errno)); pthread_detach (thread); pb_state.thread_running = true; } diff --git a/src/libaudcore/vfs_async.cc b/src/libaudcore/vfs_async.cc index 8939236..e0f0a12 100644 --- a/src/libaudcore/vfs_async.cc +++ b/src/libaudcore/vfs_async.cc @@ -18,11 +18,14 @@ */ #include +#include +#include #include "list.h" #include "mainloop.h" #include "vfs.h" #include "vfs_async.h" +#include "runtime.h" struct QueuedData : public ListNode { @@ -87,5 +90,6 @@ static void * read_worker (void * data0) EXPORT void vfs_async_file_get_contents (const char * filename, VFSConsumer cons_f, void * user) { auto data = new QueuedData (filename, cons_f, user); - pthread_create (& data->thread, nullptr, read_worker, data); + if (pthread_create (& data->thread, nullptr, read_worker, data) != 0) + AUDERR ("Can not create thread: %s!\n", strerror(errno)); }