Frankly, I despise the entire concept of recursive mutexes. In fact, 
they make little sense in the RTLinux environment. But they'd be easy
to add. Pick up the spec from Open Group and go at it.


On Fri, Sep 20, 2002 at 02:44:53PM -0300, Francisco das Chagas Mota wrote:
> As far as I know, RTLinux does not support recursive mutexes;
> I also tried to use that once and it never worked; so I had to
> develop a routine to implement the recursivity.
> 
> Mota.
> 
> 
> 
> On Fri, 20 Sep 2002, linus gasser wrote:
> 
> > Hi,
> > I just tried a very simple program:
> >
> > pthread_mutex_t mutex_here;
> >
> > void *start_it( void *arg ){
> >   pthread_mutexattr_t attr;
> >
> >   pthread_mutexattr_init( &attr );
> >   pthread_mutexattr_settype( &attr, PTHREAD_MUTEX_RECURSIVE );
> >   pthread_mutex_init( &mutex_here, &attr );
> >
> >   rtl_printf( "Locking 1st\n" );
> >   pthread_mutex_lock( &mutex_here );
> >   rtl_printf( "Locking 2nd\n" );
> >   pthread_mutex_lock( &mutex_here );
> >   rtl_printf( "UnLocking 2nd\n" );
> >   pthread_mutex_unlock( &mutex_here );
> >   rtl_printf( "UnLocking 1st\n" );
> >   pthread_mutex_unlock( &mutex_here );
> > }
> >
> > pthread_t start;
> >
> > int um_module_init(void){
> >   if ( pthread_create( &start, NULL, start_it, NULL ) ){
> >     rtl_printf( "Couldn't create thread!\n" );
> >     return -1;
> >   }
> >   return 0;
> > }
> >
> > void um_module_exit( void ){
> > }
> >
> >
> > module_init( um_module_init );
> > module_exit( um_module_exit );
> >
> > -------------------------------------------------------------------
> >
> > According to what I read about the mutexes and especially about
> > PTHREAD_MUTEX_RECURSIVE, this should give
> >
> > Locking 1st
> > Locking 2nd
> > UnLocking 2nd
> > UnLocking 1st
> >
> > But the thread hangs after printing the second line, like I would expect to do
> > it if the attribute was PTHREAD_MUTEX_NORMAL. What am I doing wrong?
> >
> > Thanks for any help,
> >
> > Linus
> > _______________________________________________
> > Rtl mailing list
> > [EMAIL PROTECTED]
> > http://www2.fsmlabs.com/mailman/listinfo.cgi/rtl
> >
> 
> _______________________________________________
> Rtl mailing list
> [EMAIL PROTECTED]
> http://www2.fsmlabs.com/mailman/listinfo.cgi/rtl

-- 
---------------------------------------------------------
Victor Yodaiken 
Finite State Machine Labs: The RTLinux Company.
 www.fsmlabs.com  www.rtlinux.com

_______________________________________________
Rtl mailing list
[EMAIL PROTECTED]
http://www2.fsmlabs.com/mailman/listinfo.cgi/rtl

Reply via email to