We have a new version of CMS in the works - we'll look at perhaps using autoconf for that.
On 4/25/06, Hiram Chirino <[EMAIL PROTECTED]> wrote: > > On 4/25/06, Mittler, Nathan <[EMAIL PROTECTED]> wrote: > > Hey Hiram, > > It's surprising that OS X doesn't support recursive locks - I thought > > they were a standard part of pthreads. Even more surprising is when you > > try to lock twice from the same thread, it deadlocks itself :) > > Sorry I was not more clear.. the code that enabled recursive mutex > was #if defined out. I made a small tweak to enable that part of the > code on OS X. > > > > > I am in total agreement about sprinkling #ifdefs around the code - it's > > ugly and we'll have to keep tweaking them to support new platforms. But > > I don't think there is a way that we can get rid of them - it's just one > > of the many nasty parts of coding in C++. Even with autoconf you still > > have to have them there - autoconf just picks which ones to enable based > > on your environment. I'm definitely open to suggestions. > > > > Yeah. Can't get around it. The upside to autoconf is that #defines > are coded in terms of features that the platform supports. Not in > terms of what the platform is. > > #if defined( PTHREADS ) > instead of > #if defined (unix) || defined(__APPLE__) > > And the PTHREADS define is enabled when autoconf runs a script to > verify that the current platform does indead support PTHREADS. So, > it's much saner and robust since it avoids asumptions that all unixs > or apple platforms support pthreads. > > The real downside is that maintaining those autoconf scripts is going > to be a hassle and not a lot of folks are trained in that art. > > > Regards, > > Nate > > > > -----Original Message----- > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Hiram > > Chirino > > Sent: Tuesday, April 25, 2006 11:48 AM > > To: activemq-dev@geronimo.apache.org > > Subject: Re: CMS supports bytes messages > > > > Hi Nathan, > > > > I assume you've committed that patch to SVN by now. > > I was just testing the latest cms against the latest activemq on OS X > > and ran into an issue where the client was hanging in the > > StompTransport::addMessageListener call. > > > > Root cause: the mutex being used did not seem to support recursive > > locking. > > > > The following patch fixes the issue for me. I'll commit it as soon as > > SVN starts working again. > > I'm not feeling very good about sprinkling all these if defs around > > the code. I'm sure we are going to have to update these constantly as > > we support more platforms. Would using autoconfig help us with these > > issues? > > > > Index: activemqcms/src/activemq/concurrent/Mutex.h > > =================================================================== > > --- activemqcms/src/activemq/concurrent/Mutex.h (revision 396884) > > +++ activemqcms/src/activemq/concurrent/Mutex.h (working copy) > > @@ -47,9 +47,9 @@ > > pthread_mutexattr_t attributes; > > pthread_mutexattr_init( &attributes ); > > > > - #ifdef __USE_UNIX98 > > + #if defined(__USE_UNIX98) || defined(__APPLE__) > > pthread_mutexattr_settype( &attributes, > > PTHREAD_MUTEX_RECURSIVE ); > > - #endif > > + #endif > > > > // Initialize the mutex. > > pthread_mutex_init( &mutex, &attributes ); > > > > > > On 4/23/06, Nathan Mittler <[EMAIL PROTECTED]> wrote: > > > I know a few of people were waiting for feedback on this - so I'm > > sending to > > > both lists. I've just submitted a couple of patches to the stomp C++ > > client > > > (CMS). One fixes the way it was handling the broker url, and the > > other > > > fixes the handling of the bytes message. It all looks good now - I > > tested > > > against the April 19th incubator snapshot of AMQ. You'll need a > > recent > > > version of the broker as there have been a few patches made on the > > stomp > > > interface. > > > > > > Regards, > > > Nate > > > > > > > > > > > > -- > > Regards, > > Hiram > > > > > -- > Regards, > Hiram >