Notice: We have migrated to GitLab launching 2024-05-01 see here: https://gitlab.rtems.org/

#3112 closed enhancement (fixed)

POSIX: Make pthread_mutex_t self-contained

Reported by: Sebastian Huber Owned by: Sebastian Huber
Priority: normal Milestone: 5.1
Component: posix Version:
Severity: normal Keywords:
Cc: Blocked By:
Blocking:

Description

Change the POSIX mutex into a self-contained object using <sys/lock.h>, e.g.

typedef struct {
  struct _Mutex_recursive_Control  _mutex;
  unsigned int                     _flags;
  struct _Scheduler_Control       *_scheduler;
  __uint64_t                       _priority_ceiling;
} pthread_mutex_t;

Change History (12)

comment:1 Changed on 09/18/17 at 05:07:02 by Sebastian Huber

Milestone: Indefinite4.12.0
Status: assignedaccepted

comment:2 Changed on 09/27/17 at 10:11:48 by Sebastian Huber <sebastian.huber@…>

In [changeset:"e460cd00fddc586908192fa8f46b7e5bfe6bd5ce/rtems" e460cd00/rtems]:

score: Rename to _Scheduler_Control

Rename struct Scheduler_Control to _Scheduler_Control to allow its use
in standard header files, e.g. <pthread.h>.

Update #3112.

comment:3 Changed on 09/27/17 at 12:57:42 by Sebastian Huber <sebastian.huber@…>

In [changeset:"e2fe881a87331e7e20dab95126a8860e42cdddf0/rtems" e2fe881a/rtems]:

score: Simplify red-black tree debug support

Make the RBTree_Node layout independent of RTEMS_DEBUG (and all other
build configuration options). This allows the use of this structure in
Newlib.

Update #3112.

comment:4 Changed on 10/05/17 at 12:34:58 by Sebastian Huber <sebastian.huber@…>

In [changeset:"76d9db31feb7835c66f926d280ea717b7933e152/rtems-source-builder" 76d9db3/rtems-source-builder]:

4.12: Update to Newlib 2.5.0.20170922

The time_t is now a 64-bit signed integer.

This update includes a patch to introduce the self-contained POSIX
synchronization objects.

Update #2514.
Update #3111.
Update #3112.
Update #3113.
Update #3114.
Update #3115.
Update #3116.

comment:5 Changed on 10/05/17 at 12:35:53 by Sebastian Huber <sebastian.huber@…>

In [changeset:"e46a075d35fa821b9d5f841032149d74e828be2b/rtems" e46a075/rtems]:

Enforce compatible Newlib version

This Newlib check ensures that we have a 64-bit time_t and
self-contained POSIX synchronization objects.

Update #2514.
Update #3111.
Update #3112.
Update #3113.
Update #3114.
Update #3115.
Update #3116.

comment:6 Changed on 10/05/17 at 12:37:09 by Sebastian Huber <sebastian.huber@…>

In [changeset:"de59c065c57cb8526662ee6da28a57ad16fdde66/rtems" de59c065/rtems]:

posix: Implement self-contained POSIX mutex

POSIX mutexes are now available in all configurations and no longer
depend on --enable-posix.

Update #2514.
Update #3112.

comment:7 Changed on 10/09/17 at 06:05:48 by Sebastian Huber <sebastian.huber@…>

In [changeset:"d8f7bdc003f560e8b3b002e18a56c18692d737d8/rtems-docs" d8f7bdc/rtems-docs]:

c-user: Add obsolete configuration options section

Update #2493.
Update #3112.
Update #3113.
Update #3114.
Update #3115.
Update #3116.

comment:8 Changed on 10/11/17 at 12:34:32 by Sebastian Huber

Component: scoreposix

comment:9 Changed on 10/12/17 at 05:16:16 by Sebastian Huber <sebastian.huber@…>

Resolution: fixed
Status: acceptedclosed

In [changeset:"9c0cefbfa5eb426ff26954066b5d1f786754a538/rtems" 9c0cefb/rtems]:

confdefs: Add warnings for obsolete options

Update #2674.
Close #3112.
Close #3113.
Close #3114.
Close #3115.
Close #3116.

comment:10 Changed on 10/18/17 at 06:53:08 by Sebastian Huber <sebastian.huber@…>

In [changeset:"6087f33e3145a0164bb0f0b3f375802d14169d4c/rtems" 6087f33e/rtems]:

tmtests/tmfine01: Add test cases

Update #2674.
Update #3112.
Update #3113.
Update #3114.
Update #3115.

comment:11 Changed on 11/09/17 at 06:27:14 by Sebastian Huber

Milestone: 4.12.05.1

Milestone renamed

comment:12 Changed on 11/22/17 at 12:51:51 by Sebastian Huber <sebastian.huber@…>

In [changeset:"7188bd50464514897e0d4dd3aa3b1036bf454b29/rtems-docs" 7188bd5/rtems-docs]:

c-user: Remove RTEMS_SYSINIT_POSIX_MUTEX

Update #3112.

Note: See TracTickets for help on using tickets.