Got Evolution crashes?

Vladimir Grebenschikov vova at fbsd.ru
Sun Sep 19 10:50:26 PDT 2004


В чт, 16/09/2004 в 12:56 -0400, Joe Marcus Clarke пишет:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Anyone experiencing a crash in Evolution 2.0.0 (Evo 2.0.0 ONLY), please
> apply the attached patch, and rebuild, and let me know if the crashes go
> away.

Before patch it crashes only on single big mailbox.
After patch it crashed on every start not depending on mailboxes.

> Joe
> 
> - --
> Joe Marcus Clarke
> FreeBSD GNOME Team	::	gnome at FreeBSD.org
> FreeNode / #freebsd-gnome
> http://www.FreeBSD.org/gnome
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.2.6 (Darwin)
> Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
> 
> iD8DBQFBScXHb2iPiv4Uz4cRAqygAJ9iUFcjBatNJ7fR7ojNS0QMDrqw5ACeKEp3
> Z0evgiQmezYUMERWEZgBPH0=
> =mzlY
> -----END PGP SIGNATURE-----
> вложение plain text document (patch-e-util_e-msgport.c)
> --- e-util/e-msgport.c.orig	Thu Sep 16 12:48:05 2004
> +++ e-util/e-msgport.c	Thu Sep 16 12:52:52 2004
> @@ -921,9 +921,12 @@
>  void e_thread_put(EThread *e, EMsg *msg)
>  {
>  	pthread_t id;
> +	pthread_attr_t attr;
>  	EMsg *dmsg = NULL;
>  
>  	pthread_mutex_lock(&e->mutex);
> +	/* Give us a 1 MB thread stack size. */
> +	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 +965,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 +981,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) {
> _______________________________________________
> freebsd-gnome at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-gnome
> To unsubscribe, send any mail to "freebsd-gnome-unsubscribe at freebsd.org"
-- 
Vladimir B. Grebenchikov
vova at fbsd.ru


More information about the freebsd-gnome mailing list