apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeff Trawick <traw...@gmail.com>
Subject Re: APR_POLLSET_THREADSAFE crash on Cygwin
Date Thu, 26 Mar 2009 17:52:21 GMT
On Thu, Mar 26, 2009 at 3:54 PM, <Daniel.Pocock@barclayscapital.com> wrote:

I've got Cygwin's libapr1 1.3.3-1
>
> I've built Ganglia (3.1.0) from source and it works.
>
> I then modify this line of code in gmond.c, adding the flag
> APR_POLLSET_THREADSAFE:
>
>  apr_pollset_create(&listen_channels, total_listen_channels,
> global_context, APR_POLLSET_THREADSAFE);
>
> Now, after adding a socket to the pollset, there is a segmentation
> fault.  gdb is unable to show me a backtrace.


APR_POLLSET_THREADSAFE isn't supported with all implementations.  I expect
that apr_pollset_create() is returning APR_ENOTIMPL, and the crash is due to
an uninitialized pollset.

Just curious: Does Ganglia modify the pollset on a separate thread than the
poll (thus needing APR_POLLSET_THREADSAFE), and if so why doesn't it already
specify APR_POLLSET_THREADSAFE *and* check the apr_pollset_create() return
code?  And if it doesn't need it, what do you expect to gain by adding it?

Mime
View raw message