diff options
author | Sebastian Wilhelmi <wilhelmi@ira.uka.de> | 2000-09-01 13:33:04 +0000 |
---|---|---|
committer | Sebastian Wilhelmi <wilhelmi@src.gnome.org> | 2000-09-01 13:33:04 +0000 |
commit | 4d1cb41ef99377ca1d9708a72dfc2f1df38cf685 (patch) | |
tree | cbd6d6868bcc5a9483296cd5fba9e202191c107e /gthread | |
parent | 64bbfbb6dae9a6f9f5b839b85beb42c3d7f2a790 (diff) | |
download | glib-4d1cb41ef99377ca1d9708a72dfc2f1df38cf685.tar.gz |
Use GError to report errors as well.
2000-09-01 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gthread-solaris.c (g_thread_create_solaris_impl): Use GError to
report errors as well.
Diffstat (limited to 'gthread')
-rw-r--r-- | gthread/ChangeLog | 3 | ||||
-rw-r--r-- | gthread/gthread-posix.c | 4 | ||||
-rw-r--r-- | gthread/gthread-solaris.c | 18 |
3 files changed, 20 insertions, 5 deletions
diff --git a/gthread/ChangeLog b/gthread/ChangeLog index 0adc49f76..4a35bfa12 100644 --- a/gthread/ChangeLog +++ b/gthread/ChangeLog @@ -3,6 +3,9 @@ * gthread-posix.c (g_thread_create_posix_impl): Use GError to report errors. + * gthread-solaris.c (g_thread_create_solaris_impl): Use GError to + report errors as well. + 2000-05-13 Tor Lillqvist <tml@iki.fi> * makefile.mingw.in: New file, with gthread stuff moved from diff --git a/gthread/gthread-posix.c b/gthread/gthread-posix.c index 4be752d68..5516a2964 100644 --- a/gthread/gthread-posix.c +++ b/gthread/gthread-posix.c @@ -287,13 +287,15 @@ g_thread_create_posix_impl (GThreadFunc thread_func, posix_check_for_error (pthread_attr_destroy (&attr)); - if (ret) + if (ret == EAGAIN) { g_set_error (error, G_THREAD_ERROR, G_THREAD_ERROR_AGAIN, "Error creating thread: %s", g_strerror (ret)); return; } + posix_check_for_error (ret); + #ifdef G_THREADS_IMPL_DCE if (!joinable) posix_check_for_error (pthread_detach (thread)); diff --git a/gthread/gthread-solaris.c b/gthread/gthread-solaris.c index c8d4302b9..7cf3c6ff0 100644 --- a/gthread/gthread-solaris.c +++ b/gthread/gthread-solaris.c @@ -195,18 +195,28 @@ g_thread_create_solaris_impl (GThreadFunc thread_func, gboolean joinable, gboolean bound, GThreadPriority priority, - gpointer thread) + gpointer thread, + GError **error) { long flags = (bound ? THR_BOUND : 0) | (joinable ? 0: THR_DETACHED); + gint ret; g_return_if_fail (thread_func); stack_size = MAX (g_thread_min_stack_size, stack_size); - solaris_check_for_error (thr_create (NULL, stack_size, - (void* (*)(void*))thread_func, - arg, flags, thread)); + ret = thr_create (NULL, stack_size, (void* (*)(void*))thread_func, + arg, flags, thread); + + if (ret == EAGAIN) + { + g_set_error (error, G_THREAD_ERROR, G_THREAD_ERROR_AGAIN, + "Error creating thread: %s", g_strerror (ret)); + return; + } + solaris_check_for_error (ret); + g_thread_set_priority_solaris_impl (thread, priority); } |