You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by Dmitry Utkin <lo...@gmail.com> on 2010/04/05 11:13:06 UTC
qpid-0.6 thread specific storage fix
Hello.
Sorry for my bad english.
I wrote patch that fixes problem with thread specific storage on linux, when
compiler lacks __thread support.
I think this patch can fix issue "thread-local storage prevents build on
Mac":
http://issues.apache.org/jira/browse/QPID-2206
this patch also fixes QPID problem when running broker or any client with
linux kernels prior to 2.6.9:
2010-04-02 18:09:40 error IO worker thread exiting with unhandled exception:
Bad address (qpid/sys/epoll/EpollPoller.cpp:327)
Patch is attached.
To apply this patch use(after unpacking patch):
patch -p1 -d qpidc-0.6 <qpidc-0.6-notls.patch
To compile qpid without __thread support:
make CXXFLAGS=-DQPID_NO_TSS=1
Tested on linux with kernel 2.4.32 and gcc 4.1.3.
--
Dmitry Utkin aka --dem--
E-Mail: loentar@gmail.com
ICQ: 179070447
Jabber: --dem--@jabber.org/Work
Jabber-qip: 179070447@qip.ru/
Re: qpid-0.6 thread specific storage fix
Posted by Andrew Stitcher <as...@redhat.com>.
On Mon, 2010-04-05 at 13:13 +0400, Dmitry Utkin wrote:
> Hello.
>
> Sorry for my bad english.
>
>
>
>
> I wrote patch that fixes problem with thread specific storage on
> linux, when compiler lacks __thread support.
Can you elucidate your environment a bit here? What compiler are you
using under Linux like that? In theory we only support gcc 3 and 4
versions (and I think 3 support is getting a little long in the tooth
myself).
Both gcc 3 and 4 support the __thread keyword which is gcc specific. I
agree that not all platform libraries support it including apparently
OSX, but I'm not aware of any versions of glibc that don't (recently).
>
>
>
> I think this patch can fix issue "thread-local storage prevents build
> on Mac":
>
> http://issues.apache.org/jira/browse/QPID-2206
>
> this patch also fixes QPID problem when running broker or any client
> with linux kernels prior to 2.6.9:
The part of your patch that alters the epoll_ctl() parameters for this
looks completely uncontroversial, perhaps you could create a new jira
with just this change attached so that it could go in directly, as it
doesn't seem connected to the QPID-2206 threading issue.
>
> 2010-04-02 18:09:40 error IO worker thread exiting with unhandled
> exception: Bad address (qpid/sys/epoll/EpollPoller.cpp:327)
>
>
> Patch is attached.
>
>
> To apply this patch use(after unpacking patch):
> patch -p1 -d qpidc-0.6 <qpidc-0.6-notls.patch
>
>
>
> To compile qpid without __thread support:
> make CXXFLAGS=-DQPID_NO_TSS=1
If we're going down this route then it must be detected by the configure
phase of the build system. Having the builder specify this on the make
line isn't acceptable,
Andrew
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org