Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Dec 2008 07:35:37 -0600
From:      Josh Paetzel <jpaetzel@FreeBSD.org>
To:        Andrew MacIntyre <andymac@bullseye.apana.org.au>
Cc:        freebsd-python@FreeBSD.org
Subject:   Re: A FreeBSD specific patch to python 2.5.2
Message-ID:  <493FC5A9.9020308@FreeBSD.org>
In-Reply-To: <493FA37E.2050502@bullseye.andymac.org>
References:  <493ECB1E.2050709@FreeBSD.org> <493FA37E.2050502@bullseye.andymac.org>

next in thread | previous in thread | raw e-mail | index | archive | help
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Andrew MacIntyre wrote:
> Josh Paetzel wrote:
> 
>> I work in a fairly python-centric environment, we use FreeBSD for all of
>> our production machines.
>>
>> Recently we have started using the following patch to python 2.5.2 in
>> production, and it's solved some issues we've had with regards to
>> python, FreeBSD, threads, and signals.
>>
>> I've been contemplating whether it should be included in the FreeBSD
>> port tree or not, and if it's included whether it should be optional, so
>> on and so forth.
>>
>> Here's the patch
>>
>> - --- Python/thread_pthread.h.orig        2006-06-13 15:04:24.000000000
>> +0000
>> +++ Python/thread_pthread.h     2008-11-11 07:20:33.000000000 +0000
>> @@ -149,6 +149,7 @@
>>  {
>>         pthread_t th;
>>         int status;
>> +       sigset_t set, oset;
>>  #if defined(THREAD_STACK_SIZE) ||
>> defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
>>         pthread_attr_t attrs;
>>  #endif
>> @@ -178,6 +179,8 @@
>>          pthread_attr_setscope(&attrs, PTHREAD_SCOPE_SYSTEM);
>>  #endif
>>
>> +       sigfillset(&set);
>> +       SET_THREAD_SIGMASK(SIG_BLOCK, &set, &oset);
>>         status = pthread_create(&th,
>>  #if defined(THREAD_STACK_SIZE) ||
>> defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
>>                                  &attrs,
>> @@ -187,7 +190,7 @@
>>                                  (void* (*)(void *))func,
>>                                  (void *)arg
>>                                  );
>> - -
>> +       SET_THREAD_SIGMASK(SIG_SETMASK, &oset, NULL);
>>  #if defined(THREAD_STACK_SIZE) ||
>> defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
>>         pthread_attr_destroy(&attrs);
>>  #endif
> 
> Which versions of FreeBSD are you using this on? There are several
> FreeBSD thread related issues in the Python bug tracker and it would be
> useful to see if they can be squashed for the prospective 2.5.3 and 2.6.1
> releases...
> 

6.3-R and 6.4-R

- --
Thanks,

Josh Paetzel

PGP: 8A48 EF36 5E9F 4EDA 5ABC 11B4 26F9 01F1 27AF AECB
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (Darwin)

iEYEARECAAYFAkk/xakACgkQJvkB8SevrssZJQCfdPOCfOoWmKVRSDtlbAI/Xk1M
7fUAmgJD847Y5Ue+6NTwbVhuKkHtstdq
=0OD6
-----END PGP SIGNATURE-----



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?493FC5A9.9020308>