pthread_barrier_* API implementation
Corinna Vinschen
corinna-cygwin@cygwin.com
Mon Feb 8 09:49:00 GMT 2016
On Feb 2 13:49, Václav Haisman wrote:
> On 1 February 2016 at 08:38, Yaakov Selkowitz <yselkowitz@cygwin.com> wrote:
> > On 2016-02-01 00:41, Václav Haisman wrote:
> >>
> >> On rakudo.org ([1]) pages, I have noticed that the pthread_barrier_*
> >> POSIX API is missing from Cygwin. I took a look at NetBSD and FreeBSD
> >> implementations of it. It seemed to me that creating POSIX barrier on
> >> top of POSIX mutex and POSIX conditional variable is not that hard ([2]).
> >>
> >> Now, the question is whether this is acceptable and whether it should be
> >> part of Newlib or directly part of Cygwin?
> >
> >
> > IMO a barriers implementation would be welcome. winsup/cygwin/thread.cc
> > would be the place for it.
ACK
> [...]
> Well, I tried and I started adding the functions into the thread.cc
> file (https://github.com/wilx/newlib-cygwin/commit/bf917b59d644eaac8fb5f72c5060bb44aa044804).
> Then I noticed I do not know where to put the necessary structures.
> Newlib headers seem to already contain some definitions of
> pthread_barrier_t and pthread_barrierattr_t. The organization of the
> source escapes me.
The Cygwin pthread implementation is (unfortunately) completely separate
from the newlib implementation. Therefore, ignore newlib for now and
just look at the files under winsup/cygwin:
- pthread.cc was supposed to contain external API calls but has been
widely neglected at one point. Some rearrangement would certainly
not hurt.
- thread.cc contains the bulk of the pthread implementation.
- thread.h contains local datatypes.
- include/pthread.h is Cygwin's pthread header for the user space.
It completely overrides newlib's include/pthread.h.
HTH,
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin-developers/attachments/20160208/8032cc00/attachment.sig>
More information about the Cygwin-developers
mailing list