aboutsummaryrefslogtreecommitdiff
path: root/src/evanix.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/evanix.c')
-rw-r--r--src/evanix.c38
1 files changed, 30 insertions, 8 deletions
diff --git a/src/evanix.c b/src/evanix.c
index 2fd5a61..4b6e4d9 100644
--- a/src/evanix.c
+++ b/src/evanix.c
@@ -31,8 +31,27 @@ struct evanix_opts_t evanix_opts = {
.solver_report = false,
};
+static int evanix_build_thread_create(struct build_thread *build_thread);
static int evanix(char *expr);
+/* This function returns errno on failure, consistent with the POSIX threads
+ * functions, rather than returning -errno. */
+static int evanix_build_thread_create(struct build_thread *build_thread)
+{
+ int ret;
+
+ ret = pthread_create(&build_thread->tid, NULL, build_thread_entry,
+ build_thread);
+ if (ret != 0)
+ return ret;
+
+ ret = pthread_setname_np(build_thread->tid, "evanix_build");
+ if (ret != 0)
+ return ret;
+
+ return 0;
+}
+
static int evanix(char *expr)
{
struct queue_thread *queue_thread = NULL;
@@ -58,17 +77,21 @@ static int evanix(char *expr)
ret = pthread_create(&queue_thread->tid, NULL, queue_thread_entry,
queue_thread);
- if (ret < 0) {
+ if (ret != 0) {
+ print_err("%s", strerror(ret));
+ goto out_free;
+ }
+ ret = pthread_setname_np(queue_thread->tid, "evanix_queue");
+ if (ret != 0) {
print_err("%s", strerror(ret));
goto out_free;
}
if (evanix_opts.ispipelined)
- ret = pthread_create(&build_thread->tid, NULL,
- build_thread_entry, build_thread);
+ ret = evanix_build_thread_create(build_thread);
else
ret = pthread_join(queue_thread->tid, NULL);
- if (ret < 0) {
+ if (ret != 0) {
print_err("%s", strerror(ret));
goto out_free;
}
@@ -76,15 +99,14 @@ static int evanix(char *expr)
if (evanix_opts.ispipelined)
ret = pthread_join(queue_thread->tid, NULL);
else
- ret = pthread_create(&build_thread->tid, NULL,
- build_thread_entry, build_thread);
- if (ret < 0) {
+ ret = evanix_build_thread_create(build_thread);
+ if (ret != 0) {
print_err("%s", strerror(ret));
goto out_free;
}
ret = pthread_join(build_thread->tid, NULL);
- if (ret < 0) {
+ if (ret != 0) {
print_err("%s", strerror(ret));
goto out_free;
}