]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Stop inlining the struct ucond definition into struct pthread_cond.
authorkib <kib@FreeBSD.org>
Sun, 29 May 2016 19:35:55 +0000 (19:35 +0000)
committerkib <kib@FreeBSD.org>
Sun, 29 May 2016 19:35:55 +0000 (19:35 +0000)
commit1bed4ff78e79c492978e96fb7773019843025c46
tree48c1a33fef8ebae5eaf969c59f88a76ed35bd019
parent7dad7e401947f5744ba675717ee43842b2f58fa0
Stop inlining the struct ucond definition into struct pthread_cond.
This avoids unneccessary casts and make the calls to _thr_ucond_*()
functions less questionable.

The c_spare field was not included into struct pthread_cond, so the
change modifies libthr ABI for shared condvars.  But since an off-page
does not legitimately contains any other data past the struct
pthread_cond, the change keeps shared condvars from pre- and post-
changed libthr compatible.  Also note that the whole struct ucond was
never copied in or out by kernel.

For private condvars, the privately allocated memory was never exposed
outside libthr.

Sponsored by: The FreeBSD Foundation
lib/libthr/thread/thr_cond.c
lib/libthr/thread/thr_private.h