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