lib/posix: Port wait_q usage to new API

The pthread mutex changes went in with an adaptation to build with the
new wait queue API, but they did it by using the old dlist hooks
directly through typecasting and union assignment.  That... is sort of
the opposite of the intent to having the new API be abstracted.  The
pthread code worked, but failed once wait queues (on x86) stopped
being dlists.

Simple fix once I saw the problem, anyway.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
This commit is contained in:
Andy Ross 2018-05-18 17:33:16 -07:00 committed by Anas Nashif
commit f4b6daff4b
2 changed files with 2 additions and 2 deletions

View file

@ -157,7 +157,7 @@ static inline int pthread_condattr_destroy(pthread_condattr_t *att)
__in_section(_k_mutex, static, name) = \
{ \
.lock_count = 0, \
.wait_q = {SYS_DLIST_STATIC_INIT((sys_dlist_t *)&name.wait_q)}, \
.wait_q = _WAIT_Q_INIT(&name.wait_q), \
.owner = NULL, \
}

View file

@ -95,7 +95,7 @@ int pthread_mutex_init(pthread_mutex_t *m,
m->type = mattr->type;
sys_dlist_init((sys_dlist_t *)&m->wait_q);
_waitq_init(&m->wait_q);
return 0;
}