support: Add wrappers for pthread_barrierattr_t

Message ID 20180529131515.A024D415401C9@oldenburg.str.redhat.com
State Committed
Headers

Commit Message

Florian Weimer May 29, 2018, 1:15 p.m. UTC
  2018-05-29  Florian Weimer  <fweimer@redhat.com>

	* support/Makefile (libsupport-routines): Add
	xpthread_barrierattr_destroy, xpthread_barrierattr_init,
	xpthread_barrierattr_setpshared.
	* support/xpthread_barrierattr_destroy.c: New file.
	* support/xpthread_barrierattr_init.c: Likewise.
	* support/xpthread_barrierattr_setpshared.c: Likewise.
  

Comments

Adhemerval Zanella May 29, 2018, 1:16 p.m. UTC | #1
On 29/05/2018 10:15, Florian Weimer wrote:
> 2018-05-29  Florian Weimer  <fweimer@redhat.com>
> 
> 	* support/Makefile (libsupport-routines): Add
> 	xpthread_barrierattr_destroy, xpthread_barrierattr_init,
> 	xpthread_barrierattr_setpshared.
> 	* support/xpthread_barrierattr_destroy.c: New file.
> 	* support/xpthread_barrierattr_init.c: Likewise.
> 	* support/xpthread_barrierattr_setpshared.c: Likewise.

LGTM.

> 
> diff --git a/support/Makefile b/support/Makefile
> index bc2e5c69a2..652d2cdf69 100644
> --- a/support/Makefile
> +++ b/support/Makefile
> @@ -98,6 +98,9 @@ libsupport-routines = \
>    xpthread_barrier_destroy \
>    xpthread_barrier_init \
>    xpthread_barrier_wait \
> +  xpthread_barrierattr_destroy \
> +  xpthread_barrierattr_init \
> +  xpthread_barrierattr_setpshared \
>    xpthread_cancel \
>    xpthread_check_return \
>    xpthread_cond_wait \
> diff --git a/support/xpthread_barrierattr_destroy.c b/support/xpthread_barrierattr_destroy.c
> new file mode 100644
> index 0000000000..3e471f9a81
> --- /dev/null
> +++ b/support/xpthread_barrierattr_destroy.c
> @@ -0,0 +1,26 @@
> +/* pthread_barrierattr_destroy with error checking.
> +   Copyright (C) 2018 Free Software Foundation, Inc.
> +   This file is part of the GNU C Library.
> +
> +   The GNU C Library is free software; you can redistribute it and/or
> +   modify it under the terms of the GNU Lesser General Public
> +   License as published by the Free Software Foundation; either
> +   version 2.1 of the License, or (at your option) any later version.
> +
> +   The GNU C Library is distributed in the hope that it will be useful,
> +   but WITHOUT ANY WARRANTY; without even the implied warranty of
> +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> +   Lesser General Public License for more details.
> +
> +   You should have received a copy of the GNU Lesser General Public
> +   License along with the GNU C Library; if not, see
> +   <http://www.gnu.org/licenses/>.  */
> +
> +#include <support/xthread.h>
> +
> +void
> +xpthread_barrierattr_destroy (pthread_barrierattr_t *attr)
> +{
> +  xpthread_check_return ("pthread_barrierattr_destroy",
> +                         pthread_barrierattr_destroy (attr));
> +}
> diff --git a/support/xpthread_barrierattr_init.c b/support/xpthread_barrierattr_init.c
> new file mode 100644
> index 0000000000..4ee14e78f3
> --- /dev/null
> +++ b/support/xpthread_barrierattr_init.c
> @@ -0,0 +1,26 @@
> +/* pthread_barrierattr_init with error checking.
> +   Copyright (C) 2018 Free Software Foundation, Inc.
> +   This file is part of the GNU C Library.
> +
> +   The GNU C Library is free software; you can redistribute it and/or
> +   modify it under the terms of the GNU Lesser General Public
> +   License as published by the Free Software Foundation; either
> +   version 2.1 of the License, or (at your option) any later version.
> +
> +   The GNU C Library is distributed in the hope that it will be useful,
> +   but WITHOUT ANY WARRANTY; without even the implied warranty of
> +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> +   Lesser General Public License for more details.
> +
> +   You should have received a copy of the GNU Lesser General Public
> +   License along with the GNU C Library; if not, see
> +   <http://www.gnu.org/licenses/>.  */
> +
> +#include <support/xthread.h>
> +
> +void
> +xpthread_barrierattr_init (pthread_barrierattr_t *attr)
> +{
> +  xpthread_check_return ("pthread_barrierattr_init",
> +                         pthread_barrierattr_init (attr));
> +}
> diff --git a/support/xpthread_barrierattr_setpshared.c b/support/xpthread_barrierattr_setpshared.c
> new file mode 100644
> index 0000000000..90b2c5bec6
> --- /dev/null
> +++ b/support/xpthread_barrierattr_setpshared.c
> @@ -0,0 +1,26 @@
> +/* pthread_barrierattr_setpshared with error checking.
> +   Copyright (C) 2018 Free Software Foundation, Inc.
> +   This file is part of the GNU C Library.
> +
> +   The GNU C Library is free software; you can redistribute it and/or
> +   modify it under the terms of the GNU Lesser General Public
> +   License as published by the Free Software Foundation; either
> +   version 2.1 of the License, or (at your option) any later version.
> +
> +   The GNU C Library is distributed in the hope that it will be useful,
> +   but WITHOUT ANY WARRANTY; without even the implied warranty of
> +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> +   Lesser General Public License for more details.
> +
> +   You should have received a copy of the GNU Lesser General Public
> +   License along with the GNU C Library; if not, see
> +   <http://www.gnu.org/licenses/>.  */
> +
> +#include <support/xthread.h>
> +
> +void
> +xpthread_barrierattr_setpshared (pthread_barrierattr_t *attr, int pshared)
> +{
> +  xpthread_check_return ("pthread_barrierattr_setpshared",
> +                         pthread_barrierattr_setpshared (attr, pshared));
> +}
> diff --git a/support/xthread.h b/support/xthread.h
> index 79358e7c99..623f5ad0ac 100644
> --- a/support/xthread.h
> +++ b/support/xthread.h
> @@ -41,6 +41,9 @@ void xpthread_check_return (const char *function, int value);
>  void xpthread_barrier_init (pthread_barrier_t *barrier,
>                              pthread_barrierattr_t *attr, unsigned int count);
>  void xpthread_barrier_destroy (pthread_barrier_t *barrier);
> +void xpthread_barrierattr_destroy (pthread_barrierattr_t *);
> +void xpthread_barrierattr_init (pthread_barrierattr_t *);
> +void xpthread_barrierattr_setpshared (pthread_barrierattr_t *, int pshared);
>  void xpthread_mutexattr_destroy (pthread_mutexattr_t *);
>  void xpthread_mutexattr_init (pthread_mutexattr_t *);
>  void xpthread_mutexattr_setprotocol (pthread_mutexattr_t *, int);
>
  
Carlos O'Donell May 29, 2018, 1:17 p.m. UTC | #2
On 05/29/2018 09:15 AM, Florian Weimer wrote:
> 2018-05-29  Florian Weimer  <fweimer@redhat.com>
> 
> 	* support/Makefile (libsupport-routines): Add
> 	xpthread_barrierattr_destroy, xpthread_barrierattr_init,
> 	xpthread_barrierattr_setpshared.
> 	* support/xpthread_barrierattr_destroy.c: New file.
> 	* support/xpthread_barrierattr_init.c: Likewise.
> 	* support/xpthread_barrierattr_setpshared.c: Likewise.

My opinion is that there is consensus for all of this support in the
support/ directory, please feel free to commit this without review
e.g. drop [PATCH] and add (Committed) at the end like Joseph does.

Thank you for all of your hard work creating new and useful test cases.
 
> diff --git a/support/Makefile b/support/Makefile
> index bc2e5c69a2..652d2cdf69 100644
> --- a/support/Makefile
> +++ b/support/Makefile
> @@ -98,6 +98,9 @@ libsupport-routines = \
>    xpthread_barrier_destroy \
>    xpthread_barrier_init \
>    xpthread_barrier_wait \
> +  xpthread_barrierattr_destroy \
> +  xpthread_barrierattr_init \
> +  xpthread_barrierattr_setpshared \
>    xpthread_cancel \
>    xpthread_check_return \
>    xpthread_cond_wait \
> diff --git a/support/xpthread_barrierattr_destroy.c b/support/xpthread_barrierattr_destroy.c
> new file mode 100644
> index 0000000000..3e471f9a81
> --- /dev/null
> +++ b/support/xpthread_barrierattr_destroy.c
> @@ -0,0 +1,26 @@
> +/* pthread_barrierattr_destroy with error checking.
> +   Copyright (C) 2018 Free Software Foundation, Inc.
> +   This file is part of the GNU C Library.
> +
> +   The GNU C Library is free software; you can redistribute it and/or
> +   modify it under the terms of the GNU Lesser General Public
> +   License as published by the Free Software Foundation; either
> +   version 2.1 of the License, or (at your option) any later version.
> +
> +   The GNU C Library is distributed in the hope that it will be useful,
> +   but WITHOUT ANY WARRANTY; without even the implied warranty of
> +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> +   Lesser General Public License for more details.
> +
> +   You should have received a copy of the GNU Lesser General Public
> +   License along with the GNU C Library; if not, see
> +   <http://www.gnu.org/licenses/>.  */
> +
> +#include <support/xthread.h>
> +
> +void
> +xpthread_barrierattr_destroy (pthread_barrierattr_t *attr)
> +{
> +  xpthread_check_return ("pthread_barrierattr_destroy",
> +                         pthread_barrierattr_destroy (attr));
> +}
> diff --git a/support/xpthread_barrierattr_init.c b/support/xpthread_barrierattr_init.c
> new file mode 100644
> index 0000000000..4ee14e78f3
> --- /dev/null
> +++ b/support/xpthread_barrierattr_init.c
> @@ -0,0 +1,26 @@
> +/* pthread_barrierattr_init with error checking.
> +   Copyright (C) 2018 Free Software Foundation, Inc.
> +   This file is part of the GNU C Library.
> +
> +   The GNU C Library is free software; you can redistribute it and/or
> +   modify it under the terms of the GNU Lesser General Public
> +   License as published by the Free Software Foundation; either
> +   version 2.1 of the License, or (at your option) any later version.
> +
> +   The GNU C Library is distributed in the hope that it will be useful,
> +   but WITHOUT ANY WARRANTY; without even the implied warranty of
> +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> +   Lesser General Public License for more details.
> +
> +   You should have received a copy of the GNU Lesser General Public
> +   License along with the GNU C Library; if not, see
> +   <http://www.gnu.org/licenses/>.  */
> +
> +#include <support/xthread.h>
> +
> +void
> +xpthread_barrierattr_init (pthread_barrierattr_t *attr)
> +{
> +  xpthread_check_return ("pthread_barrierattr_init",
> +                         pthread_barrierattr_init (attr));
> +}
> diff --git a/support/xpthread_barrierattr_setpshared.c b/support/xpthread_barrierattr_setpshared.c
> new file mode 100644
> index 0000000000..90b2c5bec6
> --- /dev/null
> +++ b/support/xpthread_barrierattr_setpshared.c
> @@ -0,0 +1,26 @@
> +/* pthread_barrierattr_setpshared with error checking.
> +   Copyright (C) 2018 Free Software Foundation, Inc.
> +   This file is part of the GNU C Library.
> +
> +   The GNU C Library is free software; you can redistribute it and/or
> +   modify it under the terms of the GNU Lesser General Public
> +   License as published by the Free Software Foundation; either
> +   version 2.1 of the License, or (at your option) any later version.
> +
> +   The GNU C Library is distributed in the hope that it will be useful,
> +   but WITHOUT ANY WARRANTY; without even the implied warranty of
> +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> +   Lesser General Public License for more details.
> +
> +   You should have received a copy of the GNU Lesser General Public
> +   License along with the GNU C Library; if not, see
> +   <http://www.gnu.org/licenses/>.  */
> +
> +#include <support/xthread.h>
> +
> +void
> +xpthread_barrierattr_setpshared (pthread_barrierattr_t *attr, int pshared)
> +{
> +  xpthread_check_return ("pthread_barrierattr_setpshared",
> +                         pthread_barrierattr_setpshared (attr, pshared));
> +}
> diff --git a/support/xthread.h b/support/xthread.h
> index 79358e7c99..623f5ad0ac 100644
> --- a/support/xthread.h
> +++ b/support/xthread.h
> @@ -41,6 +41,9 @@ void xpthread_check_return (const char *function, int value);
>  void xpthread_barrier_init (pthread_barrier_t *barrier,
>                              pthread_barrierattr_t *attr, unsigned int count);
>  void xpthread_barrier_destroy (pthread_barrier_t *barrier);
> +void xpthread_barrierattr_destroy (pthread_barrierattr_t *);
> +void xpthread_barrierattr_init (pthread_barrierattr_t *);
> +void xpthread_barrierattr_setpshared (pthread_barrierattr_t *, int pshared);
>  void xpthread_mutexattr_destroy (pthread_mutexattr_t *);
>  void xpthread_mutexattr_init (pthread_mutexattr_t *);
>  void xpthread_mutexattr_setprotocol (pthread_mutexattr_t *, int);
>
  

Patch

diff --git a/support/Makefile b/support/Makefile
index bc2e5c69a2..652d2cdf69 100644
--- a/support/Makefile
+++ b/support/Makefile
@@ -98,6 +98,9 @@  libsupport-routines = \
   xpthread_barrier_destroy \
   xpthread_barrier_init \
   xpthread_barrier_wait \
+  xpthread_barrierattr_destroy \
+  xpthread_barrierattr_init \
+  xpthread_barrierattr_setpshared \
   xpthread_cancel \
   xpthread_check_return \
   xpthread_cond_wait \
diff --git a/support/xpthread_barrierattr_destroy.c b/support/xpthread_barrierattr_destroy.c
new file mode 100644
index 0000000000..3e471f9a81
--- /dev/null
+++ b/support/xpthread_barrierattr_destroy.c
@@ -0,0 +1,26 @@ 
+/* pthread_barrierattr_destroy with error checking.
+   Copyright (C) 2018 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <support/xthread.h>
+
+void
+xpthread_barrierattr_destroy (pthread_barrierattr_t *attr)
+{
+  xpthread_check_return ("pthread_barrierattr_destroy",
+                         pthread_barrierattr_destroy (attr));
+}
diff --git a/support/xpthread_barrierattr_init.c b/support/xpthread_barrierattr_init.c
new file mode 100644
index 0000000000..4ee14e78f3
--- /dev/null
+++ b/support/xpthread_barrierattr_init.c
@@ -0,0 +1,26 @@ 
+/* pthread_barrierattr_init with error checking.
+   Copyright (C) 2018 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <support/xthread.h>
+
+void
+xpthread_barrierattr_init (pthread_barrierattr_t *attr)
+{
+  xpthread_check_return ("pthread_barrierattr_init",
+                         pthread_barrierattr_init (attr));
+}
diff --git a/support/xpthread_barrierattr_setpshared.c b/support/xpthread_barrierattr_setpshared.c
new file mode 100644
index 0000000000..90b2c5bec6
--- /dev/null
+++ b/support/xpthread_barrierattr_setpshared.c
@@ -0,0 +1,26 @@ 
+/* pthread_barrierattr_setpshared with error checking.
+   Copyright (C) 2018 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <support/xthread.h>
+
+void
+xpthread_barrierattr_setpshared (pthread_barrierattr_t *attr, int pshared)
+{
+  xpthread_check_return ("pthread_barrierattr_setpshared",
+                         pthread_barrierattr_setpshared (attr, pshared));
+}
diff --git a/support/xthread.h b/support/xthread.h
index 79358e7c99..623f5ad0ac 100644
--- a/support/xthread.h
+++ b/support/xthread.h
@@ -41,6 +41,9 @@  void xpthread_check_return (const char *function, int value);
 void xpthread_barrier_init (pthread_barrier_t *barrier,
                             pthread_barrierattr_t *attr, unsigned int count);
 void xpthread_barrier_destroy (pthread_barrier_t *barrier);
+void xpthread_barrierattr_destroy (pthread_barrierattr_t *);
+void xpthread_barrierattr_init (pthread_barrierattr_t *);
+void xpthread_barrierattr_setpshared (pthread_barrierattr_t *, int pshared);
 void xpthread_mutexattr_destroy (pthread_mutexattr_t *);
 void xpthread_mutexattr_init (pthread_mutexattr_t *);
 void xpthread_mutexattr_setprotocol (pthread_mutexattr_t *, int);