summaryrefslogtreecommitdiffstats
path: root/databases/evolution-data-server/files/extra-patch-libedataserver_e-msgport.c
diff options
context:
space:
mode:
authorkwm <kwm@df743ca5-7f9a-e211-a948-0013205c9059>2005-04-27 00:40:29 +0800
committerkwm <kwm@df743ca5-7f9a-e211-a948-0013205c9059>2005-04-27 00:40:29 +0800
commit9e1e75f9beadac81329e80348bdc90ece750bd23 (patch)
tree7fa9d0d33e393fa9445907dfdac156ad809cdcfb /databases/evolution-data-server/files/extra-patch-libedataserver_e-msgport.c
parentab857116c90d26e79ef8c6d21e4dbcf2e3dfd7b2 (diff)
downloadmarcuscom-ports-9e1e75f9beadac81329e80348bdc90ece750bd23.tar
marcuscom-ports-9e1e75f9beadac81329e80348bdc90ece750bd23.tar.gz
marcuscom-ports-9e1e75f9beadac81329e80348bdc90ece750bd23.tar.bz2
marcuscom-ports-9e1e75f9beadac81329e80348bdc90ece750bd23.tar.lz
marcuscom-ports-9e1e75f9beadac81329e80348bdc90ece750bd23.tar.xz
marcuscom-ports-9e1e75f9beadac81329e80348bdc90ece750bd23.tar.zst
marcuscom-ports-9e1e75f9beadac81329e80348bdc90ece750bd23.zip
Readd e-d-s and update to version 1.3.1.
git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@3950 df743ca5-7f9a-e211-a948-0013205c9059
Diffstat (limited to 'databases/evolution-data-server/files/extra-patch-libedataserver_e-msgport.c')
-rw-r--r--databases/evolution-data-server/files/extra-patch-libedataserver_e-msgport.c52
1 files changed, 52 insertions, 0 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
new file mode 100644
index 000000000..7383f939f
--- /dev/null
+++ b/databases/evolution-data-server/files/extra-patch-libedataserver_e-msgport.c
@@ -0,0 +1,52 @@
+--- 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 @@
+ void e_thread_put(EThread *e, EMsg *msg)
+ {
+ pthread_t id;
++ pthread_attr_t attr;
+ EMsg *dmsg = NULL;
+
+ pthread_mutex_lock(&e->mutex);
++ pthread_attr_init(&attr);
++ /* Give us a 1 MB thread stacksize on 32-bit architectures, and
++ * a 2 MB thread stacksize on 64-bit architectures. */
++ if (sizeof (void *) == 8) {
++ pthread_attr_setstacksize(&attr, 0x200000);
++ } else {
++ pthread_attr_setstacksize(&attr, 0x100000);
++ }
+
+ /* 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 @@
+ 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));
+ info->id = id;
+ info->busy = TRUE;
+ e->id_list = g_list_append(e->id_list, info);
+ }
++ pthread_attr_destroy(&attr);
+ pthread_mutex_unlock(&e->mutex);
+ return;
+ }
+@@ -977,12 +987,13 @@
+ if (e->id == E_THREAD_NONE) {
+ 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;
+ }
+ }
+
++ pthread_attr_destroy(&attr);
+ pthread_mutex_unlock(&e->mutex);
+
+ if (dmsg) {