pthread's mutex question

John Ford jford at nrao.edu
Tue Apr 30 12:26:02 UTC 2002


Pattara Kiatisevi writes:
 > On Mon, 29 Apr 2002, Joel Sherrill wrote:
 > 
 > >
 > >
 > > Pattara Kiatisevi wrote:
 > > >
 > > > Hi again,
 > > >
 > > > I have played with pthread's mutex with this small code:
 > > >
 > > >   pthread_mutex_t a,b;
 > > >
 > > >   printf("Initialize mutexes...\n");
 > > >   pthread_mutex_init(&a, NULL);
 > > >   pthread_mutex_init(&b, NULL);
 > > >
 > > >   printf("Trying to lock mutex a..\n");
 > > >   pthread_mutex_lock(&a);
 > > >   printf("Got mutex a..\n");
 > > >
 > > >   printf("Trying to lock mutex a..\n");
 > > >   pthread_mutex_lock(&a);       <----------should block here
 > > >   printf("Got mutex a..\n");
 > > >
 > > >   fprintf(stderr,"Done.\n");
 > > >
 > > > On Linux, the program will block forever at the second attempt to lock
 > > > mutex a but on RTEMS it doesn't block. Instead it returns with value 45.
 > > > Is there any chance to have it blocked here in RTEMS?
 > >
 > > That's EDEADLOCK which probably means you are attempting to acquire
 > > a mutex you already own.
 > 
 > Yeah and normally the second lock should block? Or is there any adjustable
 > parameter?

This is an undefined result using POSIX threads.  The second call can
either return EDEADLOCK, or it can simply honor your request and
deadlock the task.  It is implementation dependent, meaning that you
should never rely on it working one way or the other.  Obviously RTEMS
and Linux implement it differently.  I much prefer the RTEMS way!
Silent deadlock is not my idea of fun...

John


 > 
 > > Also ... What target and BSP are you using?  If accidentally
 > > using unix/posix that is an impact since RTEMS POSIX API
 > > can't be used there.
 > 
 > sparc-rtems/leon2.
 > 
 > Thank you,
 > Pattara
 > 
 > >
 > > > Regards,
 > > > Pattara
 > > >
 > > > --
 > > > Please avoid sending me Word or PowerPoint attachments.
 > > > See http://www.fsf.org/philosophy/no-word-attachments.html
 > > > ----------------------------------------------------------------------
 > > > Ott Pattara Kiatisevi                              T L W G
 > > > M.Sc. INFOTECH Student, Stuttgart, Germany      http://linux.thai.net/
 > > > ----------------------------------------------------------------------
 > >
 > > --
 > > Joel Sherrill, Ph.D.             Director of Research & Development
 > > joel at OARcorp.com                 On-Line Applications Research
 > > Ask me about RTEMS: a free RTOS  Huntsville AL 35805
 > >    Support Available             (256) 722-9985
 > >
 > >
 > 
 > 



More information about the users mailing list