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

#3113 closed enhancement (fixed)

POSIX: Make pthread_cond_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 condition variable into a self-contained object using <sys/lock.h>, e.g.

typedef struct {
  struct _Condition_Control  _condition;
  pthread_mutex_t           *_mutex;
  clockid_t                  _clock;
} pthread_cond_t;

Change History (11)

comment:1 Changed on 09/12/17 at 06:12:16 by Sebastian Huber <sebastian.huber@…>

In [changeset:"62c912e15581e8d2dee9300b99e0532614f5c7e5/rtems" 62c912e/rtems]:

posix: Use mutex object itself for condvar

We should only use the address used to initialize the mutex object
according to POSIX, "2.9.9 Synchronization Object Copies and Alternative
Mappings".

http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_09_09

Update #3113.

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

Milestone: Indefinite4.12.0
Status: assignedaccepted

comment:3 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:4 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:5 Changed on 10/05/17 at 12:36:56 by Sebastian Huber <sebastian.huber@…>

In [changeset:"5222488573e3ba8c2eceffe29f878a73a3a81694/rtems" 5222488/rtems]:

posix: Implement self-contained POSIX condvar

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

Update #2514.
Update #3113.

comment:6 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:7 Changed on 10/11/17 at 12:34:32 by Sebastian Huber

Component: scoreposix

comment:8 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:9 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:10 Changed on 11/09/17 at 06:27:14 by Sebastian Huber

Milestone: 4.12.05.1

Milestone renamed

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

In [changeset:"5680ec5c6d32ae2dd7d7a2cf3a11b2c3c196606e/rtems-docs" 5680ec5/rtems-docs]:

c-user: RTEMS_SYSINIT_POSIX_CONDITION_VARIABLE

Update #3113.

Note: See TracTickets for help on using tickets.