diff options
Diffstat (limited to 'databases')
-rw-r--r-- | databases/evolution-data-server/files/extra-patch-libedataserver_e-msgport.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/databases/evolution-data-server/files/extra-patch-libedataserver_e-msgport.c b/databases/evolution-data-server/files/extra-patch-libedataserver_e-msgport.c index 7383f939f..b39a8fe3c 100644 --- a/databases/evolution-data-server/files/extra-patch-libedataserver_e-msgport.c +++ b/databases/evolution-data-server/files/extra-patch-libedataserver_e-msgport.c @@ -1,6 +1,6 @@ ---- libedataserver/e-msgport.c.orig Thu Dec 2 22:33:06 2004 -+++ libedataserver/e-msgport.c Wed Mar 9 14:31:46 2005 -@@ -921,9 +921,18 @@ +--- libedataserver/e-msgport.c.orig Sat Dec 10 07:31:28 2005 ++++ libedataserver/e-msgport.c Mon Dec 19 02:19:10 2005 +@@ -1069,9 +1069,18 @@ thread_dispatch(void *din) void e_thread_put(EThread *e, EMsg *msg) { pthread_t id; @@ -19,14 +19,14 @@ /* the caller forgot to tell us what to do, well, we can't do anything can we */ if (e->received == NULL) { -@@ -962,13 +971,14 @@ +@@ -1110,13 +1119,14 @@ void e_thread_put(EThread *e, EMsg *msg) e_msgport_put(e->server_port, msg); if (e->waiting == 0 && g_list_length(e->id_list) < e->queue_limit - && pthread_create(&id, NULL, thread_dispatch, e) == 0) { + && pthread_create(&id, &attr, thread_dispatch, e) == 0) { struct _thread_info *info = g_malloc0(sizeof(*info)); - t(printf("created NEW thread %ld\n", id)); + t(printf("created NEW thread %" G_GUINT64_FORMAT "\n", e_util_pthread_id(id))); info->id = id; info->busy = TRUE; e->id_list = g_list_append(e->id_list, info); @@ -35,14 +35,15 @@ pthread_mutex_unlock(&e->mutex); return; } -@@ -977,12 +987,13 @@ - if (e->id == E_THREAD_NONE) { +@@ -1125,13 +1135,14 @@ void e_thread_put(EThread *e, EMsg *msg) + if (!e->have_thread) { int err; - if ((err = pthread_create(&e->id, NULL, thread_dispatch, e)) != 0) { + if ((err = pthread_create(&e->id, &attr, thread_dispatch, e)) != 0) { g_warning("Could not create dispatcher thread, message queued?: %s", strerror(err)); - e->id = E_THREAD_NONE; + } else { + e->have_thread = TRUE; } } |