1/* This testcase is part of GDB, the GNU debugger.
2
3   Copyright 2013-2020 Free Software Foundation, Inc.
4
5   Contributed by Intel Corp. <markus.t.metzger@intel.com>
6
7   This program is free software; you can redistribute it and/or modify
8   it under the terms of the GNU General Public License as published by
9   the Free Software Foundation; either version 3 of the License, or
10   (at your option) any later version.
11
12   This program is distributed in the hope that it will be useful,
13   but WITHOUT ANY WARRANTY; without even the implied warranty of
14   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15   GNU General Public License for more details.
16
17   You should have received a copy of the GNU General Public License
18   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19
20#include <pthread.h>
21
22static pthread_barrier_t barrier;
23static int global;
24
25static void *
26test (void *arg)
27{
28  pthread_barrier_wait (&barrier);
29
30  global = 42; /* bp.1 */
31
32  pthread_barrier_wait (&barrier);
33
34  global = 42; /* bp.2 */
35
36  return arg;
37}
38
39int
40main (void)
41{
42  pthread_t th;
43
44  pthread_barrier_init (&barrier, NULL, 2);
45  pthread_create (&th, NULL, test, NULL);
46
47  test (NULL);
48
49  pthread_join (th, NULL);
50  pthread_barrier_destroy (&barrier);
51
52  return 0; /* bp.3 */
53}
54