[PATCH] posix: Ignore pshared for semaphores
Sebastian Huber
sebastian.huber at embedded-brains.de
Fri Sep 8 15:16:52 UTC 2017
----- Joel Sherrill <joel at rtems.org> schrieb:
> On Fri, Sep 8, 2017 at 8:33 AM, Sebastian Huber <
> sebastian.huber at embedded-brains.de> wrote:
>
> > Since we have only one process, sharing between processes is trivial.
> >
> > Close #3124.
> > ---
> > cpukit/posix/include/rtems/posix/semaphore.h | 1 -
> > cpukit/posix/include/rtems/posix/semaphoreimpl.h | 1 -
> > cpukit/posix/src/semaphorecreatesupp.c | 7 -------
> > cpukit/posix/src/seminit.c | 1 -
> > cpukit/posix/src/semopen.c | 1 -
> > testsuites/psxtests/psxsem01/init.c | 14 +++++++++-----
> > 6 files changed, 9 insertions(+), 16 deletions(-)
> >
> > diff --git a/cpukit/posix/include/rtems/posix/semaphore.h
> > b/cpukit/posix/include/rtems/posix/semaphore.h
> > index 45de4a93b9..6598397052 100644
> > --- a/cpukit/posix/include/rtems/posix/semaphore.h
> > +++ b/cpukit/posix/include/rtems/posix/semaphore.h
> > @@ -43,7 +43,6 @@ extern "C" {
> > typedef struct {
> > Objects_Control Object;
> > CORE_semaphore_Control Semaphore;
> > - int process_shared;
> > bool named;
> > bool linked;
> > uint32_t open_count;
> > diff --git a/cpukit/posix/include/rtems/posix/semaphoreimpl.h
> > b/cpukit/posix/include/rtems/posix/semaphoreimpl.h
> > index 2bafbe9b97..43440298ec 100644
> > --- a/cpukit/posix/include/rtems/posix/semaphoreimpl.h
> > +++ b/cpukit/posix/include/rtems/posix/semaphoreimpl.h
> > @@ -78,7 +78,6 @@ RTEMS_INLINE_ROUTINE POSIX_Semaphore_Control
> > *_POSIX_Semaphore_Get(
> > int _POSIX_Semaphore_Create_support(
> > const char *name,
> > size_t name_len,
> > - int pshared,
> > unsigned int value,
> > POSIX_Semaphore_Control **the_sem
> > );
> > diff --git a/cpukit/posix/src/semaphorecreatesupp.c b/cpukit/posix/src/
> > semaphorecreatesupp.c
> > index d66e1942c9..4a33336230 100644
> > --- a/cpukit/posix/src/semaphorecreatesupp.c
> > +++ b/cpukit/posix/src/semaphorecreatesupp.c
> > @@ -42,7 +42,6 @@
> > int _POSIX_Semaphore_Create_support(
> > const char *name_arg,
> > size_t name_len,
> > - int pshared,
> > unsigned int value,
> > POSIX_Semaphore_Control **the_sem
> > )
> > @@ -50,10 +49,6 @@ int _POSIX_Semaphore_Create_support(
> > POSIX_Semaphore_Control *the_semaphore;
> > char *name;
> >
> > - /* Sharing semaphores among processes is not currently supported */
> > - if (pshared != 0)
> > - rtems_set_errno_and_return_minus_one( ENOSYS );
> >
>
> Why are you deleting this error check? I can see not storing the value or
> passing
> it to create support. But I think it still should be validated. We only
> support
> requests for process private. Anything else is an error.
Why is this an error? With only one process its easy to support sharing between processes. The text in the semaphore documentation is a bit vague. This description is a bit more clear:
http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_mutexattr_getpshared.html
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : sebastian.huber at embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
More information about the devel
mailing list