]> Savannah Git Hosting - gnulib/maint-tools.git/commitdiff
test-programs: Add pthread-rwlock/ directory.
authorBruno Haible <bruno@clisp.org>
Sun, 7 Jul 2024 15:50:43 +0000 (17:50 +0200)
committerBruno Haible <bruno@clisp.org>
Sun, 7 Jul 2024 15:50:43 +0000 (17:50 +0200)
106 files changed:
test-programs/pthread-rwlock/README [new file with mode: 0644]
test-programs/pthread-rwlock/foo.c [new file with mode: 0644]
test-programs/pthread-rwlock/foo.sh [new file with mode: 0755]
test-programs/pthread-rwlock/outputs/rwlock-aix-1 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-aix-2 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-android-1 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-android-2 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-cygwin-1 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-cygwin-2 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-freebsd-1 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-freebsd-2 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-glibc-hurd-1 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-glibc-hurd-2 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-default-1 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-default-2 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-prefer_writer-1 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-prefer_writer-2 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-prefer_writer_nonrecursive-1 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-prefer_writer_nonrecursive-2 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-default-1 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-default-2 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-prefer_writer-1 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-prefer_writer-2 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-prefer_writer_nonrecursive-1 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-prefer_writer_nonrecursive-2 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-default-1 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-default-2 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-prefer_writer-1 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-prefer_writer-2 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-prefer_writer_nonrecursive-1 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-prefer_writer_nonrecursive-2 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-1 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-2 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-3 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-4 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-5 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-6 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-7 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-8 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-9 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-1 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-2 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-3 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-4 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-5 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-6 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-7 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-8 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-9 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-macos-1 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-macos-2 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-macos-3 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-macos-4 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-macos-5 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-macos-6 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-macos-7 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-macos-8 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-macos-9 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-musl-1 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-musl-2 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-netbsd-1 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-netbsd-2 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-openbsd-1 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-openbsd-2 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-solaris10-1 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-solaris10-2 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-solaris10-3 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-solaris10-4 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-solaris10-5 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-solaris10-6 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-solaris10-7 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-solaris10-8 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-solaris10-9 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-solaris11-1 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-solaris11-2 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-solaris11-3 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-solaris11-4 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-solaris11-5 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-solaris11-6 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-solaris11-7 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-solaris11-8 [new file with mode: 0644]
test-programs/pthread-rwlock/outputs/rwlock-solaris11-9 [new file with mode: 0644]
test-programs/pthread-rwlock/results.txt [new file with mode: 0644]
test-programs/pthread-rwlock/results/rwlock-aix.res [new file with mode: 0644]
test-programs/pthread-rwlock/results/rwlock-android.res [new file with mode: 0644]
test-programs/pthread-rwlock/results/rwlock-cygwin.res [new file with mode: 0644]
test-programs/pthread-rwlock/results/rwlock-freebsd.res [new file with mode: 0644]
test-programs/pthread-rwlock/results/rwlock-glibc-hurd.res [new file with mode: 0644]
test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.17-default.res [new file with mode: 0644]
test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.17-prefer_writer.res [new file with mode: 0644]
test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.17-prefer_writer_nonrecursive.res [new file with mode: 0644]
test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.24-default.res [new file with mode: 0644]
test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.24-prefer_writer.res [new file with mode: 0644]
test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.24-prefer_writer_nonrecursive.res [new file with mode: 0644]
test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.35-default.res [new file with mode: 0644]
test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.35-prefer_writer.res [new file with mode: 0644]
test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.35-prefer_writer_nonrecursive.res [new file with mode: 0644]
test-programs/pthread-rwlock/results/rwlock-gnulib-windows-prefer_reader.res [new file with mode: 0644]
test-programs/pthread-rwlock/results/rwlock-gnulib-windows.res [new file with mode: 0644]
test-programs/pthread-rwlock/results/rwlock-macos.res [new file with mode: 0644]
test-programs/pthread-rwlock/results/rwlock-musl.res [new file with mode: 0644]
test-programs/pthread-rwlock/results/rwlock-netbsd.res [new file with mode: 0644]
test-programs/pthread-rwlock/results/rwlock-openbsd.res [new file with mode: 0644]
test-programs/pthread-rwlock/results/rwlock-solaris10.res [new file with mode: 0644]
test-programs/pthread-rwlock/results/rwlock-solaris11.res [new file with mode: 0644]
test-programs/pthread-rwlock/rwlock-analyze.sh [new file with mode: 0755]

diff --git a/test-programs/pthread-rwlock/README b/test-programs/pthread-rwlock/README
new file mode 100644 (file)
index 0000000..797433d
--- /dev/null
@@ -0,0 +1,20 @@
+The program in this directory extract information about how the pthread rwlocks
+of a platform are implemented.
+
+1) foo.c is a program that shows in which order the waiting threads get granted
+   access to the lock.
+
+   Compilation instructions are at the end of the file.
+
+   foo.sh is equivalent to "./foo 5".
+
+2) outputs/ contains the output of "./foo 5" on various platforms. Each
+   invocation has been done at least twice, so as to determine the degree
+   of randomness in the output.
+
+3) rwlock-analyze.sh is a program that analyzes one of the "./foo 5" outputs and
+   produces a textual description of how the pthread rwlocks work.
+
+4) results/ contains the results of rwlock-analyze.sh for each of the platforms.
+
+5) results.txt summarizes these results in a single file (copy&pasted).
diff --git a/test-programs/pthread-rwlock/foo.c b/test-programs/pthread-rwlock/foo.c
new file mode 100644 (file)
index 0000000..0541400
--- /dev/null
@@ -0,0 +1,230 @@
+/* Shows an implementation's wait queue handling of POSIX rwlocks.
+
+   This file is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published
+   by the Free Software Foundation, either version 3 of the License,
+   or (at your option) any later version.
+
+   This file 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 General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+
+/* This program shows the wait queue handling of POSIX rwlocks.
+
+   The program has a single pthread_rwlock_t.
+
+   The function do_test takes as argument a string consisting of Rs and Ws,
+   for example RWRRW. It launches a corresponding number of threads:
+   For each R, a thread that attempts to lock the lock for reading;
+   for each W, a thread that attempts to lock the lock for writing.
+   The threads do this lock attempt one after the other.
+   The first thread keeps the lock until after all threads have issued their
+   requests, then releases it. The interesting part is, then, in which order
+   these lock attempts are granted.
+
+   The main() function can be invoked
+     - either with such an R-W-string as argument. It then performs one do_test
+       invocation.
+     - or with a number, for example 5. It then performs do_test calls for all
+       possible R-W-strings of that length.  */
+
+#include <errno.h>
+#include <pthread.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#define STEP_INTERVAL 100000 /* microseconds */
+
+static pthread_rwlock_t lock;
+
+struct locals { const char *name; unsigned int wait_before; unsigned int wait_after; };
+
+static void *
+reader_func (void *arg)
+{
+  struct locals *l = arg;
+  int err;
+
+  if (l->wait_before > 0)
+    usleep (l->wait_before);
+  err = pthread_rwlock_rdlock (&lock);
+  if (err)
+    {
+      fprintf (stderr, "pthread_rwlock_rdlock failed, error = %d\n", err);
+      abort ();
+    }
+  printf (" %s", l->name);
+  if (l->wait_after > 0)
+    usleep (l->wait_after);
+  err = pthread_rwlock_unlock (&lock);
+  if (err)
+    {
+      fprintf (stderr, "pthread_rwlock_unlock failed, error = %d\n", err);
+      abort ();
+    }
+
+  return NULL;
+}
+
+static void *
+writer_func (void *arg)
+{
+  struct locals *l = arg;
+  int err;
+
+  if (l->wait_before > 0)
+    usleep (l->wait_before);
+  err = pthread_rwlock_wrlock (&lock);
+  if (err)
+    {
+      fprintf (stderr, "pthread_rwlock_rdlock failed, error = %d\n", err);
+      abort ();
+    }
+  printf (" %s", l->name);
+  if (l->wait_after > 0)
+    usleep (l->wait_after);
+  err = pthread_rwlock_unlock (&lock);
+  if (err)
+    {
+      fprintf (stderr, "pthread_rwlock_unlock failed, error = %d\n", err);
+      abort ();
+    }
+
+  return NULL;
+}
+
+static void
+do_test (const char *rw_string)
+{
+  size_t n = strlen (rw_string);
+  int err;
+
+  char **names = (char **) malloc (n * sizeof (char *));
+  for (size_t i = 0; i < n; i++)
+    {
+      char name[10];
+      sprintf (name, "%c%u", rw_string[i], (unsigned int) (i+1));
+      names[i] = strdup (name);
+      printf ("%s ", names[i]);
+    }
+
+#if defined PREFER_WRITER /* optionally, on glibc */
+  pthread_rwlockattr_t attr;
+  pthread_rwlockattr_init (&attr);
+  pthread_rwlockattr_setkind_np (&attr, PTHREAD_RWLOCK_PREFER_WRITER_NP);
+  err = pthread_rwlock_init (&lock, &attr);
+  pthread_rwlockattr_destroy (&attr);
+#elif defined PREFER_WRITER_NONRECURSIVE /* optionally, on glibc */
+  pthread_rwlockattr_t attr;
+  pthread_rwlockattr_init (&attr);
+  pthread_rwlockattr_setkind_np (&attr, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP);
+  err = pthread_rwlock_init (&lock, &attr);
+  pthread_rwlockattr_destroy (&attr);
+#else /* default */
+  err = pthread_rwlock_init (&lock, NULL);
+#endif
+  if (err)
+    {
+      fprintf (stderr, "pthread_rwlock_init failed, error = %d\n", err);
+      abort ();
+    }
+
+  printf ("=>");
+
+  /* Create the threads.  */
+  struct locals *locals = (struct locals *) malloc (n * sizeof (struct locals));
+  pthread_t *threads = (pthread_t *) malloc (n * sizeof (pthread_t));
+  for (size_t i = 0; i < n; i++)
+    {
+      locals[i].name = names[i];
+      locals[i].wait_before = i * STEP_INTERVAL;
+      locals[i].wait_after  = (i == 0 ? n * STEP_INTERVAL : 0);
+      err = pthread_create (&threads[i], NULL,
+                            rw_string[i] == 'R' ? reader_func : rw_string[i] == 'W' ? writer_func : (abort (), NULL),
+                            &locals[i]);
+      if (err)
+        {
+          fprintf (stderr, "pthread_create failed to create thread %u, error = %d\n", (unsigned int) (i+1), err);
+          abort ();
+        }
+    }
+
+  /* Wait until the threads are done.  */
+  for (size_t i = 0; i < n; i++)
+    {
+      void *retcode;
+      err = pthread_join (threads[i], &retcode);
+      if (err)
+        {
+          fprintf (stderr, "pthread_join failed to wait for thread %u, error = %d\n", (unsigned int) (i+1), err);
+          abort ();
+        }
+    }
+
+  printf ("\n");
+
+  /* Clean up.  */
+  err = pthread_rwlock_destroy (&lock);
+  if (err)
+    {
+      fprintf (stderr, "pthread_rwlock_destroy failed, error = %d\n", err);
+      abort ();
+    }
+  free (threads);
+  free (locals);
+  for (size_t i = 0; i < n; i++)
+    free (names[i]);
+  free (names);
+}
+
+int
+main (int argc, char *argv[])
+{
+  if (argc != 2)
+    {
+      fprintf (stderr, "Usage: foo RW..WR\nor: foo n\n");
+      exit (1);
+    }
+
+  const char *arg1 = argv[1];
+  if (arg1[0] == 'R' || arg1[0] == 'W')
+    do_test (arg1);
+  else
+    {
+      unsigned int n_max = (int) atoi (argv[1]);
+      for (unsigned int n = 1; n <= n_max; n++)
+        {
+          char *buf = malloc (n+1);
+          for (unsigned int k = 0; k < (1U << n); k++)
+            {
+              for (unsigned int i = 0; i < n; i++)
+                buf[i] = ((k >> (n-1-i)) & 1 ? 'W' : 'R');
+              buf[n] = '\0';
+
+              do_test (buf);
+            }
+          free (buf);
+        }
+    }
+
+  return 0;
+}
+
+/*
+  gcc -Wall foo.c [-lpthread] -o foo
+  On glibc also:
+  gcc -Wall foo.c [-lpthread] -o foo -DPREFER_WRITER
+  gcc -Wall foo.c [-lpthread] -o foo -DPREFER_WRITER_NONRECURSIVE
+
+  For use with gnulib:
+  - Add #include <config.h> at the top.
+  - Use compilation options
+      -Itestdir/build -Itestdir/build/gllib -Itestdir/gllib \
+      -Ltestdir/build/libgnu.a
+*/
diff --git a/test-programs/pthread-rwlock/foo.sh b/test-programs/pthread-rwlock/foo.sh
new file mode 100755 (executable)
index 0000000..72fdea5
--- /dev/null
@@ -0,0 +1,83 @@
+#!/bin/sh
+
+# Copyright (C) 2024 Free Software Foundation, Inc.
+#
+# This file is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published
+# by the Free Software Foundation, either version 3 of the License,
+# or (at your option) any later version.
+#
+# This file 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
+./foo R
+./foo W
+
+./foo RR
+./foo RW
+./foo WR
+./foo WW
+
+./foo RRR
+./foo RRW
+./foo RWR
+./foo RWW
+./foo WRR
+./foo WRW
+./foo WWR
+./foo WWW
+
+./foo RRRR
+./foo RRRW
+./foo RRWR
+./foo RRWW
+./foo RWRR
+./foo RWRW
+./foo RWWR
+./foo RWWW
+./foo WRRR
+./foo WRRW
+./foo WRWR
+./foo WRWW
+./foo WWRR
+./foo WWRW
+./foo WWWR
+./foo WWWW
+
+./foo RRRRR
+./foo RRRRW
+./foo RRRWR
+./foo RRRWW
+./foo RRWRR
+./foo RRWRW
+./foo RRWWR
+./foo RRWWW
+./foo RWRRR
+./foo RWRRW
+./foo RWRWR
+./foo RWRWW
+./foo RWWRR
+./foo RWWRW
+./foo RWWWR
+./foo RWWWW
+./foo WRRRR
+./foo WRRRW
+./foo WRRWR
+./foo WRRWW
+./foo WRWRR
+./foo WRWRW
+./foo WRWWR
+./foo WRWWW
+./foo WWRRR
+./foo WWRRW
+./foo WWRWR
+./foo WWRWW
+./foo WWWRR
+./foo WWWRW
+./foo WWWWR
+./foo WWWWW
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-aix-1 b/test-programs/pthread-rwlock/outputs/rwlock-aix-1
new file mode 100644 (file)
index 0000000..6e5974c
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W2 W4
+R1 W2 W3 R4 => R1 R4 W2 W3
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R3 R4 R2
+W1 R2 R3 W4 => W1 W4 R2 R3
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R4 R3
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5
+R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5
+R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4
+R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5
+R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3
+R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5
+R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R5 R4
+W1 R2 R3 R4 W5 => W1 W5 R3 R2 R4
+W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5
+W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R2 R5 R4
+W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4
+W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R4 R3 R5
+W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4
+W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-aix-2 b/test-programs/pthread-rwlock/outputs/rwlock-aix-2
new file mode 100644 (file)
index 0000000..79a957e
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W2 W4
+R1 W2 W3 R4 => R1 R4 W2 W3
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R4 R3
+W1 R2 R3 W4 => W1 W4 R2 R3
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5
+R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5
+R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4
+R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5
+R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3
+R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5
+R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R5 R4
+W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4
+W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5
+W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R2 R5 R4
+W1 R2 W3 R4 W5 => W1 W3 W5 R4 R2
+W1 R2 W3 W4 R5 => W1 W3 W4 R5 R2
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R3 R5 R4
+W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4
+W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-android-1 b/test-programs/pthread-rwlock/outputs/rwlock-android-1
new file mode 100644 (file)
index 0000000..ba9eee6
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W2 W4
+R1 W2 W3 R4 => R1 R4 W2 W3
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R3 R2 R4
+W1 R2 R3 W4 => W1 W4 R2 R3
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5
+R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5
+R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4
+R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5
+R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3
+R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5
+R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R4 R2 R3 R5
+W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4
+W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5
+W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5
+W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4
+W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5
+W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4
+W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-android-2 b/test-programs/pthread-rwlock/outputs/rwlock-android-2
new file mode 100644 (file)
index 0000000..9e7aa80
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W2 W4
+R1 W2 W3 R4 => R1 R4 W2 W3
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R3 R4 R2
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5
+R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5
+R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4
+R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5
+R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3
+R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5
+R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R5 R4
+W1 R2 R3 R4 W5 => W1 W5 R2 R4 R3
+W1 R2 R3 W4 R5 => W1 W4 R2 R5 R3
+W1 R2 R3 W4 W5 => W1 W4 W5 R3 R2
+W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5
+W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4
+W1 R2 W3 W4 R5 => W1 W3 W4 R5 R2
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R3 R5 R4
+W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4
+W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-cygwin-1 b/test-programs/pthread-rwlock/outputs/rwlock-cygwin-1
new file mode 100644 (file)
index 0000000..e160347
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R3 R2
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R4 R3
+R1 W2 R3 W4 => R1 W2 W4 R3
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R4 R2 R3
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R4 R2
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R4 R3
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4
+R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R5 R4 R3
+R1 W2 R3 R4 W5 => R1 W2 W5 R4 R3
+R1 W2 R3 W4 R5 => R1 W2 W4 R5 R3
+R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3
+R1 W2 W3 R4 R5 => R1 W2 W3 R5 R4
+R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R5 R4 R3 R2
+W1 R2 R3 R4 W5 => W1 W5 R4 R3 R2
+W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2
+W1 R2 R3 W4 W5 => W1 W4 W5 R3 R2
+W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2
+W1 R2 W3 R4 W5 => W1 W3 W5 R4 R2
+W1 R2 W3 W4 R5 => W1 W3 W4 R5 R2
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3
+W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3
+W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-cygwin-2 b/test-programs/pthread-rwlock/outputs/rwlock-cygwin-2
new file mode 100644 (file)
index 0000000..324ddd0
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R4 R3
+R1 W2 R3 W4 => R1 W2 W4 R3
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R4 R3 R2
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R4 R2
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R4 R3
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4
+R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R5 R4 R3
+R1 W2 R3 R4 W5 => R1 W2 W5 R4 R3
+R1 W2 R3 W4 R5 => R1 W2 W4 R5 R3
+R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3
+R1 W2 W3 R4 R5 => R1 W2 W3 R5 R4
+R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R3 R4 R2 R5
+W1 R2 R3 R4 W5 => W1 W5 R4 R3 R2
+W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2
+W1 R2 R3 W4 W5 => W1 W4 W5 R3 R2
+W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2
+W1 R2 W3 R4 W5 => W1 W3 W5 R4 R2
+W1 R2 W3 W4 R5 => W1 W3 W4 R5 R2
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3
+W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3
+W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-freebsd-1 b/test-programs/pthread-rwlock/outputs/rwlock-freebsd-1
new file mode 100644 (file)
index 0000000..ba93376
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R3 R2
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R3 R4
+R1 W2 R3 W4 => R1 W2 W4 R3
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R3 R4 R2
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4
+R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5
+R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4
+R1 W2 R3 W4 R5 => R1 W2 W4 R5 R3
+R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3
+R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5
+R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R3 R2 R5 R4
+W1 R2 R3 R4 W5 => W1 W5 R3 R2 R4
+W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5
+W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R4 R5 R2
+W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4
+W1 R2 W3 W4 R5 => W1 W3 W4 R5 R2
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R4 R3 R5
+W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3
+W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-freebsd-2 b/test-programs/pthread-rwlock/outputs/rwlock-freebsd-2
new file mode 100644 (file)
index 0000000..20169ab
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R3 R2
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R4 R3
+R1 W2 R3 W4 => R1 W2 W4 R3
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R3 R2 R4
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R4 R2
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5
+R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R4 R3 R5
+R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4
+R1 W2 R3 W4 R5 => R1 W2 W4 R5 R3
+R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3
+R1 W2 W3 R4 R5 => R1 W2 W3 R5 R4
+R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R3 R5 R4 R2
+W1 R2 R3 R4 W5 => W1 W5 R2 R4 R3
+W1 R2 R3 W4 R5 => W1 W4 R3 R2 R5
+W1 R2 R3 W4 W5 => W1 W4 W5 R3 R2
+W1 R2 W3 R4 R5 => W1 W3 R4 R2 R5
+W1 R2 W3 R4 W5 => W1 W3 W5 R4 R2
+W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R4 R5 R3
+W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4
+W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-hurd-1 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-hurd-1
new file mode 100644 (file)
index 0000000..1c8192d
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W3 W2
+W1 R2 R3 => W1 R3 R2
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W3 W2
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W4 W3
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W4 W2
+R1 W2 W3 R4 => R1 R4 W3 W2
+R1 W2 W3 W4 => R1 W4 W3 W2
+W1 R2 R3 R4 => W1 R4 R3 R2
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R4 R2
+W1 R2 W3 W4 => W1 W4 W3 R2
+W1 W2 R3 R4 => W1 W2 R4 R3
+W1 W2 R3 W4 => W1 W4 W2 R3
+W1 W2 W3 R4 => W1 W3 W2 R4
+W1 W2 W3 W4 => W1 W4 W3 W2
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W5 W3
+R1 R2 W3 W4 R5 => R1 R2 R5 W4 W3
+R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W5 W2
+R1 W2 R3 W4 R5 => R1 R3 R5 W4 W2
+R1 W2 R3 W4 W5 => R1 R3 W5 W4 W2
+R1 W2 W3 R4 R5 => R1 R4 R5 W3 W2
+R1 W2 W3 R4 W5 => R1 R4 W5 W3 W2
+R1 W2 W3 W4 R5 => R1 R5 W4 W3 W2
+R1 W2 W3 W4 W5 => R1 W5 W4 W3 W2
+W1 R2 R3 R4 R5 => W1 R5 R4 R3 R2
+W1 R2 R3 R4 W5 => W1 W5 R4 R3 R2
+W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2
+W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2
+W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2
+W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2
+W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2
+W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2
+W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3
+W1 W2 R3 R4 W5 => W1 W5 W2 R4 R3
+W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3
+W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3
+W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4
+W1 W2 W3 R4 W5 => W1 W5 W3 W2 R4
+W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5
+W1 W2 W3 W4 W5 => W1 W5 W4 W3 W2
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-hurd-2 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-hurd-2
new file mode 100644 (file)
index 0000000..1c8192d
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W3 W2
+W1 R2 R3 => W1 R3 R2
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W3 W2
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W4 W3
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W4 W2
+R1 W2 W3 R4 => R1 R4 W3 W2
+R1 W2 W3 W4 => R1 W4 W3 W2
+W1 R2 R3 R4 => W1 R4 R3 R2
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R4 R2
+W1 R2 W3 W4 => W1 W4 W3 R2
+W1 W2 R3 R4 => W1 W2 R4 R3
+W1 W2 R3 W4 => W1 W4 W2 R3
+W1 W2 W3 R4 => W1 W3 W2 R4
+W1 W2 W3 W4 => W1 W4 W3 W2
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W5 W3
+R1 R2 W3 W4 R5 => R1 R2 R5 W4 W3
+R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W5 W2
+R1 W2 R3 W4 R5 => R1 R3 R5 W4 W2
+R1 W2 R3 W4 W5 => R1 R3 W5 W4 W2
+R1 W2 W3 R4 R5 => R1 R4 R5 W3 W2
+R1 W2 W3 R4 W5 => R1 R4 W5 W3 W2
+R1 W2 W3 W4 R5 => R1 R5 W4 W3 W2
+R1 W2 W3 W4 W5 => R1 W5 W4 W3 W2
+W1 R2 R3 R4 R5 => W1 R5 R4 R3 R2
+W1 R2 R3 R4 W5 => W1 W5 R4 R3 R2
+W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2
+W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2
+W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2
+W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2
+W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2
+W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2
+W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3
+W1 W2 R3 R4 W5 => W1 W5 W2 R4 R3
+W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3
+W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3
+W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4
+W1 W2 W3 R4 W5 => W1 W5 W3 W2 R4
+W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5
+W1 W2 W3 W4 W5 => W1 W5 W4 W3 W2
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-default-1 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-default-1
new file mode 100644 (file)
index 0000000..278cfb8
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W2 W4
+R1 W2 W3 R4 => R1 R4 W2 W3
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5
+R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5
+R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4
+R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5
+R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3
+R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5
+R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R5 R4 R2 R3
+W1 R2 R3 R4 W5 => W1 W5 R2 R4 R3
+W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5
+W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5
+W1 R2 W3 R4 W5 => W1 W3 W5 R4 R2
+W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3
+W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3
+W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-default-2 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-default-2
new file mode 100644 (file)
index 0000000..ec8f034
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R3 R2
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W2 W4
+R1 W2 W3 R4 => R1 R4 W2 W3
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R3 R2 R4
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5
+R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5
+R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4
+R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5
+R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3
+R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5
+R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R5 R3 R4
+W1 R2 R3 R4 W5 => W1 W5 R2 R4 R3
+W1 R2 R3 W4 R5 => W1 W4 R2 R5 R3
+W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2
+W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4
+W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R4 R5 R3
+W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3
+W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-prefer_writer-1 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-prefer_writer-1
new file mode 100644 (file)
index 0000000..c646788
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R3 R2
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W2 W4
+R1 W2 W3 R4 => R1 R4 W2 W3
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R3 R2 R4
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5
+R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5
+R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4
+R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5
+R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3
+R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5
+R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R4 R2 R5 R3
+W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4
+W1 R2 R3 W4 R5 => W1 W4 R2 R5 R3
+W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5
+W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4
+W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3
+W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3
+W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-prefer_writer-2 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-prefer_writer-2
new file mode 100644 (file)
index 0000000..170d520
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W2 W4
+R1 W2 W3 R4 => R1 R4 W2 W3
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R4 R2 R3
+W1 R2 R3 W4 => W1 W4 R2 R3
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R4 R3
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5
+R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5
+R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4
+R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5
+R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3
+R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5
+R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R5 R4
+W1 R2 R3 R4 W5 => W1 W5 R3 R4 R2
+W1 R2 R3 W4 R5 => W1 W4 R3 R5 R2
+W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R2 R5 R4
+W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4
+W1 R2 W3 W4 R5 => W1 W3 W4 R5 R2
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R4 R5 R3
+W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3
+W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-prefer_writer_nonrecursive-1 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-prefer_writer_nonrecursive-1
new file mode 100644 (file)
index 0000000..44d6406
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R3 R4
+R1 W2 R3 W4 => R1 W2 W4 R3
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R4 R2 R3
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5
+R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5
+R1 W2 R3 R4 W5 => R1 W2 W5 R4 R3
+R1 W2 R3 W4 R5 => R1 W2 W4 R5 R3
+R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3
+R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5
+R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R5 R4 R2 R3
+W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4
+W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5
+W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R5 R2 R4
+W1 R2 W3 R4 W5 => W1 W3 W5 R4 R2
+W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R4 R5 R3
+W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3
+W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-prefer_writer_nonrecursive-2 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-prefer_writer_nonrecursive-2
new file mode 100644 (file)
index 0000000..d434e21
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R3 R2
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R4 R3
+R1 W2 R3 W4 => R1 W2 W4 R3
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R4 R3
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R4 R2
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5
+R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R5 R4 R3
+R1 W2 R3 R4 W5 => R1 W2 W5 R4 R3
+R1 W2 R3 W4 R5 => R1 W2 W4 R5 R3
+R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3
+R1 W2 W3 R4 R5 => R1 W2 W3 R5 R4
+R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R5 R4 R3
+W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4
+W1 R2 R3 W4 R5 => W1 W4 R2 R5 R3
+W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R2 R5 R4
+W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4
+W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R3 R5 R4
+W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3
+W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-default-1 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-default-1
new file mode 100644 (file)
index 0000000..8e7f18e
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W2 W4
+R1 W2 W3 R4 => R1 R4 W2 W3
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R4 R3 R2
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R4 R2
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R4 R3
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5
+R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5
+R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4
+R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5
+R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3
+R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5
+R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R5 R4 R3 R2
+W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4
+W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2
+W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2
+W1 R2 W3 R4 W5 => W1 W3 W5 R4 R2
+W1 R2 W3 W4 R5 => W1 W3 W4 R5 R2
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3
+W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3
+W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-default-2 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-default-2
new file mode 100644 (file)
index 0000000..2b9d0b7
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W2 W4
+R1 W2 W3 R4 => R1 R4 W2 W3
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R3 R2 R4
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R4 R2
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R4 R3
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5
+R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5
+R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4
+R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5
+R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3
+R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5
+R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R5 R2 R4 R3
+W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4
+W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2
+W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2
+W1 R2 W3 R4 W5 => W1 W3 W5 R4 R2
+W1 R2 W3 W4 R5 => W1 W3 W4 R5 R2
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3
+W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3
+W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-prefer_writer-1 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-prefer_writer-1
new file mode 100644 (file)
index 0000000..9acb84d
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W2 W4
+R1 W2 W3 R4 => R1 R4 W2 W3
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R4 R3 R2
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R4 R2
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R4 R3
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5
+R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5
+R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4
+R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5
+R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3
+R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5
+R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R5 R2 R3 R4
+W1 R2 R3 R4 W5 => W1 W5 R3 R4 R2
+W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2
+W1 R2 R3 W4 W5 => W1 W4 W5 R3 R2
+W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2
+W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4
+W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3
+W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3
+W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-prefer_writer-2 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-prefer_writer-2
new file mode 100644 (file)
index 0000000..277dc8a
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W2 W4
+R1 W2 W3 R4 => R1 R4 W2 W3
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R4 R3 R2
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R4 R3
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5
+R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5
+R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4
+R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5
+R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3
+R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5
+R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R5 R4 R3 R2
+W1 R2 R3 R4 W5 => W1 W5 R4 R3 R2
+W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2
+W1 R2 R3 W4 W5 => W1 W4 W5 R3 R2
+W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5
+W1 R2 W3 R4 W5 => W1 W3 W5 R4 R2
+W1 R2 W3 W4 R5 => W1 W3 W4 R5 R2
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3
+W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3
+W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-prefer_writer_nonrecursive-1 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-prefer_writer_nonrecursive-1
new file mode 100644 (file)
index 0000000..58510c5
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R3 R2
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R3 R4
+R1 W2 R3 W4 => R1 W2 W4 R3
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R4 R3 R2
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R4 R2
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4
+R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R5 R4 R3
+R1 W2 R3 R4 W5 => R1 W2 W5 R4 R3
+R1 W2 R3 W4 R5 => R1 W2 W4 R5 R3
+R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3
+R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5
+R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R5 R4 R3 R2
+W1 R2 R3 R4 W5 => W1 W5 R4 R3 R2
+W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2
+W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2
+W1 R2 W3 R4 W5 => W1 W3 W5 R4 R2
+W1 R2 W3 W4 R5 => W1 W3 W4 R5 R2
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3
+W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3
+W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-prefer_writer_nonrecursive-2 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-prefer_writer_nonrecursive-2
new file mode 100644 (file)
index 0000000..75401bf
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R4 R3
+R1 W2 R3 W4 => R1 W2 W4 R3
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R4 R3 R2
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R4 R2
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R4 R3
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4
+R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R5 R4 R3
+R1 W2 R3 R4 W5 => R1 W2 W5 R4 R3
+R1 W2 R3 W4 R5 => R1 W2 W4 R5 R3
+R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3
+R1 W2 W3 R4 R5 => R1 W2 W3 R5 R4
+R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5
+W1 R2 R3 R4 W5 => W1 W5 R4 R3 R2
+W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5
+W1 R2 R3 W4 W5 => W1 W4 W5 R3 R2
+W1 R2 W3 R4 R5 => W1 W3 R2 R5 R4
+W1 R2 W3 R4 W5 => W1 W3 W5 R4 R2
+W1 R2 W3 W4 R5 => W1 W3 W4 R5 R2
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3
+W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3
+W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-default-1 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-default-1
new file mode 100644 (file)
index 0000000..7125243
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 R2 W3
+W1 W2 R3 => W1 R3 W2
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W2 W4
+R1 W2 W3 R4 => R1 R4 W2 W3
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 R2 R3 W4
+W1 R2 W3 R4 => W1 R4 R2 W3
+W1 R2 W3 W4 => W1 R2 W3 W4
+W1 W2 R3 R4 => W1 R3 R4 W2
+W1 W2 R3 W4 => W1 R3 W2 W4
+W1 W2 W3 R4 => W1 R4 W2 W3
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5
+R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5
+R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4
+R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5
+R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3
+R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5
+R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R5 R4 R3
+W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5
+W1 R2 R3 W4 R5 => W1 R2 R3 R5 W4
+W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5
+W1 R2 W3 R4 R5 => W1 R2 R5 R4 W3
+W1 R2 W3 R4 W5 => W1 R2 R4 W3 W5
+W1 R2 W3 W4 R5 => W1 R2 R5 W3 W4
+W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5
+W1 W2 R3 R4 R5 => W1 R5 R4 R3 W2
+W1 W2 R3 R4 W5 => W1 R3 R4 W2 W5
+W1 W2 R3 W4 R5 => W1 R5 R3 W2 W4
+W1 W2 R3 W4 W5 => W1 R3 W2 W4 W5
+W1 W2 W3 R4 R5 => W1 R5 R4 W2 W3
+W1 W2 W3 R4 W5 => W1 R4 W2 W3 W5
+W1 W2 W3 W4 R5 => W1 R5 W2 W3 W4
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-default-2 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-default-2
new file mode 100644 (file)
index 0000000..7f600e1
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R3 R2
+W1 R2 W3 => W1 R2 W3
+W1 W2 R3 => W1 R3 W2
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W2 W4
+R1 W2 W3 R4 => R1 R4 W2 W3
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R3 R2 R4
+W1 R2 R3 W4 => W1 R3 R2 W4
+W1 R2 W3 R4 => W1 R4 R2 W3
+W1 R2 W3 W4 => W1 R2 W3 W4
+W1 W2 R3 R4 => W1 R3 R4 W2
+W1 W2 R3 W4 => W1 R3 W2 W4
+W1 W2 W3 R4 => W1 R4 W2 W3
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5
+R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5
+R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4
+R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5
+R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3
+R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5
+R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R5 R4
+W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5
+W1 R2 R3 W4 R5 => W1 R5 R2 R3 W4
+W1 R2 R3 W4 W5 => W1 R3 R2 W4 W5
+W1 R2 W3 R4 R5 => W1 R2 R5 R4 W3
+W1 R2 W3 R4 W5 => W1 R2 R4 W3 W5
+W1 R2 W3 W4 R5 => W1 R2 R5 W3 W4
+W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5
+W1 W2 R3 R4 R5 => W1 R3 R5 R4 W2
+W1 W2 R3 R4 W5 => W1 R4 R3 W2 W5
+W1 W2 R3 W4 R5 => W1 R3 R5 W2 W4
+W1 W2 R3 W4 W5 => W1 R3 W2 W4 W5
+W1 W2 W3 R4 R5 => W1 R4 R5 W2 W3
+W1 W2 W3 R4 W5 => W1 R4 W2 W3 W5
+W1 W2 W3 W4 R5 => W1 R5 W2 W3 W4
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-prefer_writer-1 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-prefer_writer-1
new file mode 100644 (file)
index 0000000..530c4ce
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W2 W4
+R1 W2 W3 R4 => R1 R4 W2 W3
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5
+R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5
+R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4
+R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5
+R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3
+R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5
+R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5
+W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4
+W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5
+W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5
+W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4
+W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R4 R3 R5
+W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4
+W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-prefer_writer-2 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-prefer_writer-2
new file mode 100644 (file)
index 0000000..ee77ac4
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R3 R2
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W2 W4
+R1 W2 W3 R4 => R1 R4 W2 W3
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R3 R2 R4
+W1 R2 R3 W4 => W1 W4 R2 R3
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5
+R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5
+R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4
+R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5
+R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3
+R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5
+R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R5 R4
+W1 R2 R3 R4 W5 => W1 W5 R3 R4 R2
+W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5
+W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R2 R5 R4
+W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4
+W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5
+W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4
+W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-prefer_writer_nonrecursive-1 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-prefer_writer_nonrecursive-1
new file mode 100644 (file)
index 0000000..c1d4485
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R4 R3
+R1 W2 R3 W4 => R1 W2 W4 R3
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R3 R2 R4
+W1 R2 R3 W4 => W1 W4 R2 R3
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R4 R3
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4
+R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R5 R4 R3
+R1 W2 R3 R4 W5 => R1 W2 W5 R4 R3
+R1 W2 R3 W4 R5 => R1 W2 W4 R3 R5
+R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3
+R1 W2 W3 R4 R5 => R1 W2 W3 R5 R4
+R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R3 R5 R2 R4
+W1 R2 R3 R4 W5 => W1 W5 R3 R2 R4
+W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5
+W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R2 R5 R4
+W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4
+W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5
+W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4
+W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-prefer_writer_nonrecursive-2 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-prefer_writer_nonrecursive-2
new file mode 100644 (file)
index 0000000..39ae4a4
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R4 R3
+R1 W2 R3 W4 => R1 W2 W4 R3
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 W4 R2 R3
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4
+R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R4 R3 R5
+R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4
+R1 W2 R3 W4 R5 => R1 W2 W4 R3 R5
+R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3
+R1 W2 W3 R4 R5 => R1 W2 W3 R5 R4
+R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R5 R3 R4
+W1 R2 R3 R4 W5 => W1 W5 R3 R2 R4
+W1 R2 R3 W4 R5 => W1 W4 R3 R2 R5
+W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R2 R5 R4
+W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4
+W1 R2 W3 W4 R5 => W1 W3 W4 R5 R2
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R3 R5 R4
+W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4
+W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-1 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-1
new file mode 100644 (file)
index 0000000..974606e
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R3 R4
+R1 W2 R3 W4 => R1 W2 W4 R3
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 W4 R2 R3
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5
+R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5
+R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4
+R1 W2 R3 W4 R5 => R1 W2 W4 R3 R5
+R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3
+R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5
+R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5
+W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4
+W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5
+W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5
+W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4
+W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5
+W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4
+W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-2 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-2
new file mode 100644 (file)
index 0000000..974606e
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R3 R4
+R1 W2 R3 W4 => R1 W2 W4 R3
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 W4 R2 R3
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5
+R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5
+R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4
+R1 W2 R3 W4 R5 => R1 W2 W4 R3 R5
+R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3
+R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5
+R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5
+W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4
+W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5
+W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5
+W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4
+W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5
+W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4
+W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-3 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-3
new file mode 100644 (file)
index 0000000..974606e
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R3 R4
+R1 W2 R3 W4 => R1 W2 W4 R3
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 W4 R2 R3
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5
+R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5
+R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4
+R1 W2 R3 W4 R5 => R1 W2 W4 R3 R5
+R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3
+R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5
+R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5
+W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4
+W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5
+W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5
+W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4
+W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5
+W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4
+W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-4 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-4
new file mode 100644 (file)
index 0000000..974606e
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R3 R4
+R1 W2 R3 W4 => R1 W2 W4 R3
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 W4 R2 R3
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5
+R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5
+R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4
+R1 W2 R3 W4 R5 => R1 W2 W4 R3 R5
+R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3
+R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5
+R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5
+W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4
+W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5
+W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5
+W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4
+W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5
+W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4
+W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-5 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-5
new file mode 100644 (file)
index 0000000..974606e
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R3 R4
+R1 W2 R3 W4 => R1 W2 W4 R3
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 W4 R2 R3
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5
+R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5
+R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4
+R1 W2 R3 W4 R5 => R1 W2 W4 R3 R5
+R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3
+R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5
+R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5
+W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4
+W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5
+W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5
+W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4
+W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5
+W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4
+W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-6 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-6
new file mode 100644 (file)
index 0000000..974606e
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R3 R4
+R1 W2 R3 W4 => R1 W2 W4 R3
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 W4 R2 R3
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5
+R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5
+R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4
+R1 W2 R3 W4 R5 => R1 W2 W4 R3 R5
+R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3
+R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5
+R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5
+W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4
+W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5
+W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5
+W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4
+W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5
+W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4
+W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-7 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-7
new file mode 100644 (file)
index 0000000..974606e
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R3 R4
+R1 W2 R3 W4 => R1 W2 W4 R3
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 W4 R2 R3
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5
+R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5
+R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4
+R1 W2 R3 W4 R5 => R1 W2 W4 R3 R5
+R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3
+R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5
+R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5
+W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4
+W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5
+W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5
+W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4
+W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5
+W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4
+W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-8 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-8
new file mode 100644 (file)
index 0000000..974606e
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R3 R4
+R1 W2 R3 W4 => R1 W2 W4 R3
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 W4 R2 R3
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5
+R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5
+R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4
+R1 W2 R3 W4 R5 => R1 W2 W4 R3 R5
+R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3
+R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5
+R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5
+W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4
+W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5
+W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5
+W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4
+W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5
+W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4
+W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-9 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-9
new file mode 100644 (file)
index 0000000..974606e
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R3 R4
+R1 W2 R3 W4 => R1 W2 W4 R3
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 W4 R2 R3
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5
+R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5
+R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4
+R1 W2 R3 W4 R5 => R1 W2 W4 R3 R5
+R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3
+R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5
+R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5
+W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4
+W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5
+W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5
+W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4
+W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5
+W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4
+W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-1 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-1
new file mode 100644 (file)
index 0000000..fe68680
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 R2 W3
+W1 W2 R3 => W1 R3 W2
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W2 W4
+R1 W2 W3 R4 => R1 R4 W2 W3
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 R2 R3 W4
+W1 R2 W3 R4 => W1 R2 R4 W3
+W1 R2 W3 W4 => W1 R2 W3 W4
+W1 W2 R3 R4 => W1 R3 R4 W2
+W1 W2 R3 W4 => W1 R3 W2 W4
+W1 W2 W3 R4 => W1 R4 W2 W3
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5
+R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5
+R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4
+R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5
+R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3
+R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5
+R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5
+W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5
+W1 R2 R3 W4 R5 => W1 R2 R3 R5 W4
+W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5
+W1 R2 W3 R4 R5 => W1 R2 R4 R5 W3
+W1 R2 W3 R4 W5 => W1 R2 R4 W3 W5
+W1 R2 W3 W4 R5 => W1 R2 R5 W3 W4
+W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5
+W1 W2 R3 R4 R5 => W1 R3 R4 R5 W2
+W1 W2 R3 R4 W5 => W1 R3 R4 W2 W5
+W1 W2 R3 W4 R5 => W1 R3 R5 W2 W4
+W1 W2 R3 W4 W5 => W1 R3 W2 W4 W5
+W1 W2 W3 R4 R5 => W1 R4 R5 W2 W3
+W1 W2 W3 R4 W5 => W1 R4 W2 W3 W5
+W1 W2 W3 W4 R5 => W1 R5 W2 W3 W4
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-2 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-2
new file mode 100644 (file)
index 0000000..fe68680
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 R2 W3
+W1 W2 R3 => W1 R3 W2
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W2 W4
+R1 W2 W3 R4 => R1 R4 W2 W3
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 R2 R3 W4
+W1 R2 W3 R4 => W1 R2 R4 W3
+W1 R2 W3 W4 => W1 R2 W3 W4
+W1 W2 R3 R4 => W1 R3 R4 W2
+W1 W2 R3 W4 => W1 R3 W2 W4
+W1 W2 W3 R4 => W1 R4 W2 W3
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5
+R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5
+R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4
+R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5
+R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3
+R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5
+R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5
+W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5
+W1 R2 R3 W4 R5 => W1 R2 R3 R5 W4
+W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5
+W1 R2 W3 R4 R5 => W1 R2 R4 R5 W3
+W1 R2 W3 R4 W5 => W1 R2 R4 W3 W5
+W1 R2 W3 W4 R5 => W1 R2 R5 W3 W4
+W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5
+W1 W2 R3 R4 R5 => W1 R3 R4 R5 W2
+W1 W2 R3 R4 W5 => W1 R3 R4 W2 W5
+W1 W2 R3 W4 R5 => W1 R3 R5 W2 W4
+W1 W2 R3 W4 W5 => W1 R3 W2 W4 W5
+W1 W2 W3 R4 R5 => W1 R4 R5 W2 W3
+W1 W2 W3 R4 W5 => W1 R4 W2 W3 W5
+W1 W2 W3 W4 R5 => W1 R5 W2 W3 W4
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-3 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-3
new file mode 100644 (file)
index 0000000..fe68680
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 R2 W3
+W1 W2 R3 => W1 R3 W2
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W2 W4
+R1 W2 W3 R4 => R1 R4 W2 W3
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 R2 R3 W4
+W1 R2 W3 R4 => W1 R2 R4 W3
+W1 R2 W3 W4 => W1 R2 W3 W4
+W1 W2 R3 R4 => W1 R3 R4 W2
+W1 W2 R3 W4 => W1 R3 W2 W4
+W1 W2 W3 R4 => W1 R4 W2 W3
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5
+R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5
+R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4
+R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5
+R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3
+R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5
+R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5
+W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5
+W1 R2 R3 W4 R5 => W1 R2 R3 R5 W4
+W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5
+W1 R2 W3 R4 R5 => W1 R2 R4 R5 W3
+W1 R2 W3 R4 W5 => W1 R2 R4 W3 W5
+W1 R2 W3 W4 R5 => W1 R2 R5 W3 W4
+W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5
+W1 W2 R3 R4 R5 => W1 R3 R4 R5 W2
+W1 W2 R3 R4 W5 => W1 R3 R4 W2 W5
+W1 W2 R3 W4 R5 => W1 R3 R5 W2 W4
+W1 W2 R3 W4 W5 => W1 R3 W2 W4 W5
+W1 W2 W3 R4 R5 => W1 R4 R5 W2 W3
+W1 W2 W3 R4 W5 => W1 R4 W2 W3 W5
+W1 W2 W3 W4 R5 => W1 R5 W2 W3 W4
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-4 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-4
new file mode 100644 (file)
index 0000000..fe68680
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 R2 W3
+W1 W2 R3 => W1 R3 W2
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W2 W4
+R1 W2 W3 R4 => R1 R4 W2 W3
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 R2 R3 W4
+W1 R2 W3 R4 => W1 R2 R4 W3
+W1 R2 W3 W4 => W1 R2 W3 W4
+W1 W2 R3 R4 => W1 R3 R4 W2
+W1 W2 R3 W4 => W1 R3 W2 W4
+W1 W2 W3 R4 => W1 R4 W2 W3
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5
+R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5
+R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4
+R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5
+R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3
+R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5
+R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5
+W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5
+W1 R2 R3 W4 R5 => W1 R2 R3 R5 W4
+W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5
+W1 R2 W3 R4 R5 => W1 R2 R4 R5 W3
+W1 R2 W3 R4 W5 => W1 R2 R4 W3 W5
+W1 R2 W3 W4 R5 => W1 R2 R5 W3 W4
+W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5
+W1 W2 R3 R4 R5 => W1 R3 R4 R5 W2
+W1 W2 R3 R4 W5 => W1 R3 R4 W2 W5
+W1 W2 R3 W4 R5 => W1 R3 R5 W2 W4
+W1 W2 R3 W4 W5 => W1 R3 W2 W4 W5
+W1 W2 W3 R4 R5 => W1 R4 R5 W2 W3
+W1 W2 W3 R4 W5 => W1 R4 W2 W3 W5
+W1 W2 W3 W4 R5 => W1 R5 W2 W3 W4
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-5 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-5
new file mode 100644 (file)
index 0000000..fe68680
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 R2 W3
+W1 W2 R3 => W1 R3 W2
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W2 W4
+R1 W2 W3 R4 => R1 R4 W2 W3
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 R2 R3 W4
+W1 R2 W3 R4 => W1 R2 R4 W3
+W1 R2 W3 W4 => W1 R2 W3 W4
+W1 W2 R3 R4 => W1 R3 R4 W2
+W1 W2 R3 W4 => W1 R3 W2 W4
+W1 W2 W3 R4 => W1 R4 W2 W3
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5
+R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5
+R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4
+R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5
+R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3
+R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5
+R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5
+W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5
+W1 R2 R3 W4 R5 => W1 R2 R3 R5 W4
+W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5
+W1 R2 W3 R4 R5 => W1 R2 R4 R5 W3
+W1 R2 W3 R4 W5 => W1 R2 R4 W3 W5
+W1 R2 W3 W4 R5 => W1 R2 R5 W3 W4
+W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5
+W1 W2 R3 R4 R5 => W1 R3 R4 R5 W2
+W1 W2 R3 R4 W5 => W1 R3 R4 W2 W5
+W1 W2 R3 W4 R5 => W1 R3 R5 W2 W4
+W1 W2 R3 W4 W5 => W1 R3 W2 W4 W5
+W1 W2 W3 R4 R5 => W1 R4 R5 W2 W3
+W1 W2 W3 R4 W5 => W1 R4 W2 W3 W5
+W1 W2 W3 W4 R5 => W1 R5 W2 W3 W4
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-6 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-6
new file mode 100644 (file)
index 0000000..fe68680
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 R2 W3
+W1 W2 R3 => W1 R3 W2
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W2 W4
+R1 W2 W3 R4 => R1 R4 W2 W3
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 R2 R3 W4
+W1 R2 W3 R4 => W1 R2 R4 W3
+W1 R2 W3 W4 => W1 R2 W3 W4
+W1 W2 R3 R4 => W1 R3 R4 W2
+W1 W2 R3 W4 => W1 R3 W2 W4
+W1 W2 W3 R4 => W1 R4 W2 W3
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5
+R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5
+R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4
+R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5
+R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3
+R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5
+R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5
+W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5
+W1 R2 R3 W4 R5 => W1 R2 R3 R5 W4
+W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5
+W1 R2 W3 R4 R5 => W1 R2 R4 R5 W3
+W1 R2 W3 R4 W5 => W1 R2 R4 W3 W5
+W1 R2 W3 W4 R5 => W1 R2 R5 W3 W4
+W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5
+W1 W2 R3 R4 R5 => W1 R3 R4 R5 W2
+W1 W2 R3 R4 W5 => W1 R3 R4 W2 W5
+W1 W2 R3 W4 R5 => W1 R3 R5 W2 W4
+W1 W2 R3 W4 W5 => W1 R3 W2 W4 W5
+W1 W2 W3 R4 R5 => W1 R4 R5 W2 W3
+W1 W2 W3 R4 W5 => W1 R4 W2 W3 W5
+W1 W2 W3 W4 R5 => W1 R5 W2 W3 W4
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-7 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-7
new file mode 100644 (file)
index 0000000..fe68680
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 R2 W3
+W1 W2 R3 => W1 R3 W2
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W2 W4
+R1 W2 W3 R4 => R1 R4 W2 W3
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 R2 R3 W4
+W1 R2 W3 R4 => W1 R2 R4 W3
+W1 R2 W3 W4 => W1 R2 W3 W4
+W1 W2 R3 R4 => W1 R3 R4 W2
+W1 W2 R3 W4 => W1 R3 W2 W4
+W1 W2 W3 R4 => W1 R4 W2 W3
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5
+R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5
+R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4
+R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5
+R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3
+R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5
+R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5
+W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5
+W1 R2 R3 W4 R5 => W1 R2 R3 R5 W4
+W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5
+W1 R2 W3 R4 R5 => W1 R2 R4 R5 W3
+W1 R2 W3 R4 W5 => W1 R2 R4 W3 W5
+W1 R2 W3 W4 R5 => W1 R2 R5 W3 W4
+W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5
+W1 W2 R3 R4 R5 => W1 R3 R4 R5 W2
+W1 W2 R3 R4 W5 => W1 R3 R4 W2 W5
+W1 W2 R3 W4 R5 => W1 R3 R5 W2 W4
+W1 W2 R3 W4 W5 => W1 R3 W2 W4 W5
+W1 W2 W3 R4 R5 => W1 R4 R5 W2 W3
+W1 W2 W3 R4 W5 => W1 R4 W2 W3 W5
+W1 W2 W3 W4 R5 => W1 R5 W2 W3 W4
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-8 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-8
new file mode 100644 (file)
index 0000000..fe68680
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 R2 W3
+W1 W2 R3 => W1 R3 W2
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W2 W4
+R1 W2 W3 R4 => R1 R4 W2 W3
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 R2 R3 W4
+W1 R2 W3 R4 => W1 R2 R4 W3
+W1 R2 W3 W4 => W1 R2 W3 W4
+W1 W2 R3 R4 => W1 R3 R4 W2
+W1 W2 R3 W4 => W1 R3 W2 W4
+W1 W2 W3 R4 => W1 R4 W2 W3
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5
+R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5
+R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4
+R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5
+R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3
+R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5
+R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5
+W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5
+W1 R2 R3 W4 R5 => W1 R2 R3 R5 W4
+W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5
+W1 R2 W3 R4 R5 => W1 R2 R4 R5 W3
+W1 R2 W3 R4 W5 => W1 R2 R4 W3 W5
+W1 R2 W3 W4 R5 => W1 R2 R5 W3 W4
+W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5
+W1 W2 R3 R4 R5 => W1 R3 R4 R5 W2
+W1 W2 R3 R4 W5 => W1 R3 R4 W2 W5
+W1 W2 R3 W4 R5 => W1 R3 R5 W2 W4
+W1 W2 R3 W4 W5 => W1 R3 W2 W4 W5
+W1 W2 W3 R4 R5 => W1 R4 R5 W2 W3
+W1 W2 W3 R4 W5 => W1 R4 W2 W3 W5
+W1 W2 W3 W4 R5 => W1 R5 W2 W3 W4
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-9 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-9
new file mode 100644 (file)
index 0000000..fe68680
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 R2 W3
+W1 W2 R3 => W1 R3 W2
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W2 W4
+R1 W2 W3 R4 => R1 R4 W2 W3
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 R2 R3 W4
+W1 R2 W3 R4 => W1 R2 R4 W3
+W1 R2 W3 W4 => W1 R2 W3 W4
+W1 W2 R3 R4 => W1 R3 R4 W2
+W1 W2 R3 W4 => W1 R3 W2 W4
+W1 W2 W3 R4 => W1 R4 W2 W3
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5
+R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5
+R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4
+R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5
+R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3
+R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5
+R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5
+W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5
+W1 R2 R3 W4 R5 => W1 R2 R3 R5 W4
+W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5
+W1 R2 W3 R4 R5 => W1 R2 R4 R5 W3
+W1 R2 W3 R4 W5 => W1 R2 R4 W3 W5
+W1 R2 W3 W4 R5 => W1 R2 R5 W3 W4
+W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5
+W1 W2 R3 R4 R5 => W1 R3 R4 R5 W2
+W1 W2 R3 R4 W5 => W1 R3 R4 W2 W5
+W1 W2 R3 W4 R5 => W1 R3 R5 W2 W4
+W1 W2 R3 W4 W5 => W1 R3 W2 W4 W5
+W1 W2 W3 R4 R5 => W1 R4 R5 W2 W3
+W1 W2 W3 R4 W5 => W1 R4 W2 W3 W5
+W1 W2 W3 W4 R5 => W1 R5 W2 W3 W4
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-macos-1 b/test-programs/pthread-rwlock/outputs/rwlock-macos-1
new file mode 100644 (file)
index 0000000..d1e294c
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 R2 W3
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R3 R4
+R1 W2 R3 W4 => R1 W2 R3 W4
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R4 R3
+W1 R2 R3 W4 => W1 R2 R3 W4
+W1 R2 W3 R4 => W1 R2 W3 R4
+W1 R2 W3 W4 => W1 R2 W3 W4
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 R3 W4
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5
+R1 R2 W3 R4 W5 => R1 R2 W3 R4 W5
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R3 R5 R4
+R1 W2 R3 R4 W5 => R1 W2 R3 R4 W5
+R1 W2 R3 W4 R5 => R1 W2 R3 W4 R5
+R1 W2 R3 W4 W5 => R1 W2 R3 W4 W5
+R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5
+R1 W2 W3 R4 W5 => R1 W2 W3 R4 W5
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5
+W1 R2 R3 R4 W5 => W1 R2 R4 R3 W5
+W1 R2 R3 W4 R5 => W1 R2 R3 W4 R5
+W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5
+W1 R2 W3 R4 R5 => W1 R2 W3 R4 R5
+W1 R2 W3 R4 W5 => W1 R2 W3 R4 W5
+W1 R2 W3 W4 R5 => W1 R2 W3 W4 R5
+W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5
+W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5
+W1 W2 R3 R4 W5 => W1 W2 R3 R4 W5
+W1 W2 R3 W4 R5 => W1 W2 R3 W4 R5
+W1 W2 R3 W4 W5 => W1 W2 R3 W4 W5
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 R4 W5
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-macos-2 b/test-programs/pthread-rwlock/outputs/rwlock-macos-2
new file mode 100644 (file)
index 0000000..892461e
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 R2 W3
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R3 R4
+R1 W2 R3 W4 => R1 W2 R3 W4
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 R2 R3 W4
+W1 R2 W3 R4 => W1 R2 W3 R4
+W1 R2 W3 W4 => W1 R2 W3 W4
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 R3 W4
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5
+R1 R2 W3 R4 W5 => R1 R2 W3 R4 W5
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5
+R1 W2 R3 R4 W5 => R1 W2 R3 R4 W5
+R1 W2 R3 W4 R5 => R1 W2 R3 W4 R5
+R1 W2 R3 W4 W5 => R1 W2 R3 W4 W5
+R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5
+R1 W2 W3 R4 W5 => R1 W2 W3 R4 W5
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5
+W1 R2 R3 R4 W5 => W1 R2 R4 R3 W5
+W1 R2 R3 W4 R5 => W1 R2 R3 W4 R5
+W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5
+W1 R2 W3 R4 R5 => W1 R2 W3 R4 R5
+W1 R2 W3 R4 W5 => W1 R2 W3 R4 W5
+W1 R2 W3 W4 R5 => W1 R2 W3 W4 R5
+W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5
+W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5
+W1 W2 R3 R4 W5 => W1 W2 R3 R4 W5
+W1 W2 R3 W4 R5 => W1 W2 R3 W4 R5
+W1 W2 R3 W4 W5 => W1 W2 R3 W4 W5
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 R4 W5
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-macos-3 b/test-programs/pthread-rwlock/outputs/rwlock-macos-3
new file mode 100644 (file)
index 0000000..5b71fc7
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 R2 W3
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R3 R4
+R1 W2 R3 W4 => R1 W2 R3 W4
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R4 R3
+W1 R2 R3 W4 => W1 R2 R3 W4
+W1 R2 W3 R4 => W1 R2 W3 R4
+W1 R2 W3 W4 => W1 R2 W3 W4
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 R3 W4
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5
+R1 R2 W3 R4 W5 => R1 R2 W3 R4 W5
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5
+R1 W2 R3 R4 W5 => R1 W2 R3 R4 W5
+R1 W2 R3 W4 R5 => R1 W2 R3 W4 R5
+R1 W2 R3 W4 W5 => R1 W2 R3 W4 W5
+R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5
+R1 W2 W3 R4 W5 => R1 W2 W3 R4 W5
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R5 R4
+W1 R2 R3 R4 W5 => W1 R2 R4 R3 W5
+W1 R2 R3 W4 R5 => W1 R2 R3 W4 R5
+W1 R2 R3 W4 W5 => W1 R3 R2 W4 W5
+W1 R2 W3 R4 R5 => W1 R2 W3 R4 R5
+W1 R2 W3 R4 W5 => W1 R2 W3 R4 W5
+W1 R2 W3 W4 R5 => W1 R2 W3 W4 R5
+W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5
+W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5
+W1 W2 R3 R4 W5 => W1 W2 R3 R4 W5
+W1 W2 R3 W4 R5 => W1 W2 R3 W4 R5
+W1 W2 R3 W4 W5 => W1 W2 R3 W4 W5
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 R4 W5
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-macos-4 b/test-programs/pthread-rwlock/outputs/rwlock-macos-4
new file mode 100644 (file)
index 0000000..58d0489
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 R2 W3
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R3 R4
+R1 W2 R3 W4 => R1 W2 R3 W4
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 R2 R3 W4
+W1 R2 W3 R4 => W1 R2 W3 R4
+W1 R2 W3 W4 => W1 R2 W3 W4
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 R3 W4
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5
+R1 R2 W3 R4 W5 => R1 R2 W3 R4 W5
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R3 R5 R4
+R1 W2 R3 R4 W5 => R1 W2 R3 R4 W5
+R1 W2 R3 W4 R5 => R1 W2 R3 W4 R5
+R1 W2 R3 W4 W5 => R1 W2 R3 W4 W5
+R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5
+R1 W2 W3 R4 W5 => R1 W2 W3 R4 W5
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R3 R4 R5 R2
+W1 R2 R3 R4 W5 => W1 R2 R4 R3 W5
+W1 R2 R3 W4 R5 => W1 R2 R3 W4 R5
+W1 R2 R3 W4 W5 => W1 R3 R2 W4 W5
+W1 R2 W3 R4 R5 => W1 R2 W3 R4 R5
+W1 R2 W3 R4 W5 => W1 R2 W3 R4 W5
+W1 R2 W3 W4 R5 => W1 R2 W3 W4 R5
+W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5
+W1 W2 R3 R4 R5 => W1 W2 R3 R5 R4
+W1 W2 R3 R4 W5 => W1 W2 R3 R4 W5
+W1 W2 R3 W4 R5 => W1 W2 R3 W4 R5
+W1 W2 R3 W4 W5 => W1 W2 R3 W4 W5
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 R4 W5
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-macos-5 b/test-programs/pthread-rwlock/outputs/rwlock-macos-5
new file mode 100644 (file)
index 0000000..d957ea1
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 R2 W3
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R3 R4
+R1 W2 R3 W4 => R1 W2 R3 W4
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 R2 R3 W4
+W1 R2 W3 R4 => W1 R2 W3 R4
+W1 R2 W3 W4 => W1 R2 W3 W4
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 R3 W4
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5
+R1 R2 W3 R4 W5 => R1 R2 W3 R4 W5
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5
+R1 W2 R3 R4 W5 => R1 W2 R3 R4 W5
+R1 W2 R3 W4 R5 => R1 W2 R3 W4 R5
+R1 W2 R3 W4 W5 => R1 W2 R3 W4 W5
+R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5
+R1 W2 W3 R4 W5 => R1 W2 W3 R4 W5
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R5 R4 R3
+W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5
+W1 R2 R3 W4 R5 => W1 R2 R3 W4 R5
+W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5
+W1 R2 W3 R4 R5 => W1 R2 W3 R4 R5
+W1 R2 W3 R4 W5 => W1 R2 W3 R4 W5
+W1 R2 W3 W4 R5 => W1 R2 W3 W4 R5
+W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5
+W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5
+W1 W2 R3 R4 W5 => W1 W2 R3 R4 W5
+W1 W2 R3 W4 R5 => W1 W2 R3 W4 R5
+W1 W2 R3 W4 W5 => W1 W2 R3 W4 W5
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 R4 W5
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-macos-6 b/test-programs/pthread-rwlock/outputs/rwlock-macos-6
new file mode 100644 (file)
index 0000000..cac2cd7
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R3 R2
+W1 R2 W3 => W1 R2 W3
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R3 R4
+R1 W2 R3 W4 => R1 W2 R3 W4
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 R2 R3 W4
+W1 R2 W3 R4 => W1 R2 W3 R4
+W1 R2 W3 W4 => W1 R2 W3 W4
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 R3 W4
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5
+R1 R2 W3 R4 W5 => R1 R2 W3 R4 W5
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5
+R1 W2 R3 R4 W5 => R1 W2 R3 R4 W5
+R1 W2 R3 W4 R5 => R1 W2 R3 W4 R5
+R1 W2 R3 W4 W5 => R1 W2 R3 W4 W5
+R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5
+R1 W2 W3 R4 W5 => R1 W2 W3 R4 W5
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R4 R3 R5
+W1 R2 R3 R4 W5 => W1 R2 R4 R3 W5
+W1 R2 R3 W4 R5 => W1 R3 R2 W4 R5
+W1 R2 R3 W4 W5 => W1 R3 R2 W4 W5
+W1 R2 W3 R4 R5 => W1 R2 W3 R5 R4
+W1 R2 W3 R4 W5 => W1 R2 W3 R4 W5
+W1 R2 W3 W4 R5 => W1 R2 W3 W4 R5
+W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5
+W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5
+W1 W2 R3 R4 W5 => W1 W2 R3 R4 W5
+W1 W2 R3 W4 R5 => W1 W2 R3 W4 R5
+W1 W2 R3 W4 W5 => W1 W2 R3 W4 W5
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 R4 W5
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-macos-7 b/test-programs/pthread-rwlock/outputs/rwlock-macos-7
new file mode 100644 (file)
index 0000000..aaa350e
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 R2 W3
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R3 R4
+R1 W2 R3 W4 => R1 W2 R3 W4
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 R2 R3 W4
+W1 R2 W3 R4 => W1 R2 W3 R4
+W1 R2 W3 W4 => W1 R2 W3 W4
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 R3 W4
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5
+R1 R2 W3 R4 W5 => R1 R2 W3 R4 W5
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5
+R1 W2 R3 R4 W5 => R1 W2 R3 R4 W5
+R1 W2 R3 W4 R5 => R1 W2 R3 W4 R5
+R1 W2 R3 W4 W5 => R1 W2 R3 W4 W5
+R1 W2 W3 R4 R5 => R1 W2 W3 R5 R4
+R1 W2 W3 R4 W5 => R1 W2 W3 R4 W5
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5
+W1 R2 R3 R4 W5 => W1 R2 R4 R3 W5
+W1 R2 R3 W4 R5 => W1 R3 R2 W4 R5
+W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5
+W1 R2 W3 R4 R5 => W1 R2 W3 R4 R5
+W1 R2 W3 R4 W5 => W1 R2 W3 R4 W5
+W1 R2 W3 W4 R5 => W1 R2 W3 W4 R5
+W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5
+W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5
+W1 W2 R3 R4 W5 => W1 W2 R3 R4 W5
+W1 W2 R3 W4 R5 => W1 W2 R3 W4 R5
+W1 W2 R3 W4 W5 => W1 W2 R3 W4 W5
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 R4 W5
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-macos-8 b/test-programs/pthread-rwlock/outputs/rwlock-macos-8
new file mode 100644 (file)
index 0000000..8ef9c1a
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 R2 W3
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R3 R4
+R1 W2 R3 W4 => R1 W2 R3 W4
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 R2 R3 W4
+W1 R2 W3 R4 => W1 R2 W3 R4
+W1 R2 W3 W4 => W1 R2 W3 W4
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 R3 W4
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5
+R1 R2 W3 R4 W5 => R1 R2 W3 R4 W5
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R4 R3 R5
+R1 W2 R3 R4 W5 => R1 W2 R3 R4 W5
+R1 W2 R3 W4 R5 => R1 W2 R3 W4 R5
+R1 W2 R3 W4 W5 => R1 W2 R3 W4 W5
+R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5
+R1 W2 W3 R4 W5 => R1 W2 W3 R4 W5
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R4 R3 R5
+W1 R2 R3 R4 W5 => W1 R2 R4 R3 W5
+W1 R2 R3 W4 R5 => W1 R2 R3 W4 R5
+W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5
+W1 R2 W3 R4 R5 => W1 R2 W3 R5 R4
+W1 R2 W3 R4 W5 => W1 R2 W3 R4 W5
+W1 R2 W3 W4 R5 => W1 R2 W3 W4 R5
+W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5
+W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5
+W1 W2 R3 R4 W5 => W1 W2 R3 R4 W5
+W1 W2 R3 W4 R5 => W1 W2 R3 W4 R5
+W1 W2 R3 W4 W5 => W1 W2 R3 W4 W5
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 R4 W5
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-macos-9 b/test-programs/pthread-rwlock/outputs/rwlock-macos-9
new file mode 100644 (file)
index 0000000..ff026c9
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 R2 W3
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R3 R4
+R1 W2 R3 W4 => R1 W2 R3 W4
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R4 R3
+W1 R2 R3 W4 => W1 R2 R3 W4
+W1 R2 W3 R4 => W1 R2 W3 R4
+W1 R2 W3 W4 => W1 R2 W3 W4
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 R3 W4
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4
+R1 R2 W3 R4 W5 => R1 R2 W3 R4 W5
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5
+R1 W2 R3 R4 W5 => R1 W2 R3 R4 W5
+R1 W2 R3 W4 R5 => R1 W2 R3 W4 R5
+R1 W2 R3 W4 W5 => R1 W2 R3 W4 W5
+R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5
+R1 W2 W3 R4 W5 => R1 W2 W3 R4 W5
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5
+W1 R2 R3 R4 W5 => W1 R2 R4 R3 W5
+W1 R2 R3 W4 R5 => W1 R2 R3 W4 R5
+W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5
+W1 R2 W3 R4 R5 => W1 R2 W3 R4 R5
+W1 R2 W3 R4 W5 => W1 R2 W3 R4 W5
+W1 R2 W3 W4 R5 => W1 R2 W3 W4 R5
+W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5
+W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5
+W1 W2 R3 R4 W5 => W1 W2 R3 R4 W5
+W1 W2 R3 W4 R5 => W1 W2 R3 W4 R5
+W1 W2 R3 W4 W5 => W1 W2 R3 W4 W5
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 R4 W5
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-musl-1 b/test-programs/pthread-rwlock/outputs/rwlock-musl-1
new file mode 100644 (file)
index 0000000..29a5483
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 R2 W3
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W2 W4
+R1 W2 W3 R4 => R1 R4 W2 W3
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 R2 R3 W4
+W1 R2 W3 R4 => W1 R2 W3 R4
+W1 R2 W3 W4 => W1 R2 W3 W4
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 R3 W4
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5
+R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5
+R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4
+R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5
+R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3
+R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5
+R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5
+W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5
+W1 R2 R3 W4 R5 => W1 R2 R3 W4 R5
+W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5
+W1 R2 W3 R4 R5 => W1 R2 W3 R4 R5
+W1 R2 W3 R4 W5 => W1 R2 W3 R4 W5
+W1 R2 W3 W4 R5 => W1 R2 W3 W4 R5
+W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5
+W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5
+W1 W2 R3 R4 W5 => W1 W2 R3 R4 W5
+W1 W2 R3 W4 R5 => W1 W2 R3 W4 R5
+W1 W2 R3 W4 W5 => W1 W2 R3 W4 W5
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 R4 W5
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-musl-2 b/test-programs/pthread-rwlock/outputs/rwlock-musl-2
new file mode 100644 (file)
index 0000000..29a5483
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 R2 W3
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W2 W4
+R1 W2 W3 R4 => R1 R4 W2 W3
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 R2 R3 W4
+W1 R2 W3 R4 => W1 R2 W3 R4
+W1 R2 W3 W4 => W1 R2 W3 W4
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 R3 W4
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5
+R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5
+R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4
+R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5
+R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3
+R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5
+R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5
+W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5
+W1 R2 R3 W4 R5 => W1 R2 R3 W4 R5
+W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5
+W1 R2 W3 R4 R5 => W1 R2 W3 R4 R5
+W1 R2 W3 R4 W5 => W1 R2 W3 R4 W5
+W1 R2 W3 W4 R5 => W1 R2 W3 W4 R5
+W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5
+W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5
+W1 W2 R3 R4 W5 => W1 W2 R3 R4 W5
+W1 W2 R3 W4 R5 => W1 W2 R3 W4 R5
+W1 W2 R3 W4 W5 => W1 W2 R3 W4 W5
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 R4 W5
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-netbsd-1 b/test-programs/pthread-rwlock/outputs/rwlock-netbsd-1
new file mode 100644 (file)
index 0000000..26995cb
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R3 R2
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R4 R3
+R1 W2 R3 W4 => R1 W2 W4 R3
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R4 R3 R2
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R4 R2
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R4 R3
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4
+R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R5 R4 R3
+R1 W2 R3 R4 W5 => R1 W2 W5 R4 R3
+R1 W2 R3 W4 R5 => R1 W2 W4 R5 R3
+R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3
+R1 W2 W3 R4 R5 => R1 W2 W3 R5 R4
+R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R5 R4 R3 R2
+W1 R2 R3 R4 W5 => W1 W5 R4 R3 R2
+W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2
+W1 R2 R3 W4 W5 => W1 W4 W5 R3 R2
+W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2
+W1 R2 W3 R4 W5 => W1 W3 W5 R4 R2
+W1 R2 W3 W4 R5 => W1 W3 W4 R5 R2
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3
+W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3
+W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-netbsd-2 b/test-programs/pthread-rwlock/outputs/rwlock-netbsd-2
new file mode 100644 (file)
index 0000000..26995cb
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R3 R2
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 W2 R4 R3
+R1 W2 R3 W4 => R1 W2 W4 R3
+R1 W2 W3 R4 => R1 W2 W3 R4
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R4 R3 R2
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R4 R2
+W1 R2 W3 W4 => W1 W3 W4 R2
+W1 W2 R3 R4 => W1 W2 R4 R3
+W1 W2 R3 W4 => W1 W2 W4 R3
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4
+R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4
+R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 W2 R5 R4 R3
+R1 W2 R3 R4 W5 => R1 W2 W5 R4 R3
+R1 W2 R3 W4 R5 => R1 W2 W4 R5 R3
+R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3
+R1 W2 W3 R4 R5 => R1 W2 W3 R5 R4
+R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4
+R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R5 R4 R3 R2
+W1 R2 R3 R4 W5 => W1 W5 R4 R3 R2
+W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2
+W1 R2 R3 W4 W5 => W1 W4 W5 R3 R2
+W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2
+W1 R2 W3 R4 W5 => W1 W3 W5 R4 R2
+W1 R2 W3 W4 R5 => W1 W3 W4 R5 R2
+W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2
+W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3
+W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3
+W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3
+W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3
+W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4
+W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-openbsd-1 b/test-programs/pthread-rwlock/outputs/rwlock-openbsd-1
new file mode 100644 (file)
index 0000000..29a5483
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 R2 W3
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W2 W4
+R1 W2 W3 R4 => R1 R4 W2 W3
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 R2 R3 W4
+W1 R2 W3 R4 => W1 R2 W3 R4
+W1 R2 W3 W4 => W1 R2 W3 W4
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 R3 W4
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5
+R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5
+R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4
+R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5
+R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3
+R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5
+R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5
+W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5
+W1 R2 R3 W4 R5 => W1 R2 R3 W4 R5
+W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5
+W1 R2 W3 R4 R5 => W1 R2 W3 R4 R5
+W1 R2 W3 R4 W5 => W1 R2 W3 R4 W5
+W1 R2 W3 W4 R5 => W1 R2 W3 W4 R5
+W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5
+W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5
+W1 W2 R3 R4 W5 => W1 W2 R3 R4 W5
+W1 W2 R3 W4 R5 => W1 W2 R3 W4 R5
+W1 W2 R3 W4 W5 => W1 W2 R3 W4 W5
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 R4 W5
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-openbsd-2 b/test-programs/pthread-rwlock/outputs/rwlock-openbsd-2
new file mode 100644 (file)
index 0000000..29a5483
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 R3 W2
+R1 W2 W3 => R1 W2 W3
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 R2 W3
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 R4 W3
+R1 R2 W3 W4 => R1 R2 W3 W4
+R1 W2 R3 R4 => R1 R3 R4 W2
+R1 W2 R3 W4 => R1 R3 W2 W4
+R1 W2 W3 R4 => R1 R4 W2 W3
+R1 W2 W3 W4 => R1 W2 W3 W4
+W1 R2 R3 R4 => W1 R2 R3 R4
+W1 R2 R3 W4 => W1 R2 R3 W4
+W1 R2 W3 R4 => W1 R2 W3 R4
+W1 R2 W3 W4 => W1 R2 W3 W4
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W2 R3 W4
+W1 W2 W3 R4 => W1 W2 W3 R4
+W1 W2 W3 W4 => W1 W2 W3 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4
+R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5
+R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3
+R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5
+R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4
+R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5
+R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2
+R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5
+R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4
+R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5
+R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3
+R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5
+R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4
+R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5
+W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5
+W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5
+W1 R2 R3 W4 R5 => W1 R2 R3 W4 R5
+W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5
+W1 R2 W3 R4 R5 => W1 R2 W3 R4 R5
+W1 R2 W3 R4 W5 => W1 R2 W3 R4 W5
+W1 R2 W3 W4 R5 => W1 R2 W3 W4 R5
+W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5
+W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5
+W1 W2 R3 R4 W5 => W1 W2 R3 R4 W5
+W1 W2 R3 W4 R5 => W1 W2 R3 W4 R5
+W1 W2 R3 W4 W5 => W1 W2 R3 W4 W5
+W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5
+W1 W2 W3 R4 W5 => W1 W2 W3 R4 W5
+W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5
+W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris10-1 b/test-programs/pthread-rwlock/outputs/rwlock-solaris10-1
new file mode 100644 (file)
index 0000000..3ffd494
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W3 W2
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W4 W3
+R1 W2 R3 R4 => R1 W2 R4 R3
+R1 W2 R3 W4 => R1 W4 W2 R3
+R1 W2 W3 R4 => R1 W3 W2 R4
+R1 W2 W3 W4 => R1 W4 W2 W3
+W1 R2 R3 R4 => W1 R3 R4 R2
+W1 R2 R3 W4 => W1 W4 R2 R3
+W1 R2 W3 R4 => W1 W3 R4 R2
+W1 R2 W3 W4 => W1 W4 W3 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W4 W2 R3
+W1 W2 W3 R4 => W1 W3 W2 R4
+W1 W2 W3 W4 => W1 W4 W3 W2
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4
+R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4
+R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4
+R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5
+R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3
+R1 W2 R3 R4 R5 => R1 W2 R4 R5 R3
+R1 W2 R3 R4 W5 => R1 W5 W2 R4 R3
+R1 W2 R3 W4 R5 => R1 W4 W2 R5 R3
+R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3
+R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4
+R1 W2 W3 R4 W5 => R1 W5 W2 W3 R4
+R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5
+R1 W2 W3 W4 W5 => R1 W5 W4 W3 W2
+W1 R2 R3 R4 R5 => W1 R5 R2 R3 R4
+W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4
+W1 R2 R3 W4 R5 => W1 W4 R3 R5 R2
+W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2
+W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2
+W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2
+W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2
+W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2
+W1 W2 R3 R4 R5 => W1 W2 R5 R3 R4
+W1 W2 R3 R4 W5 => W1 W5 W2 R3 R4
+W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3
+W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3
+W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4
+W1 W2 W3 R4 W5 => W1 W5 W2 W3 R4
+W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5
+W1 W2 W3 W4 W5 => W1 W5 W4 W3 W2
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris10-2 b/test-programs/pthread-rwlock/outputs/rwlock-solaris10-2
new file mode 100644 (file)
index 0000000..734581f
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W3 W2
+W1 R2 R3 => W1 R3 R2
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W4 W3
+R1 W2 R3 R4 => R1 W2 R3 R4
+R1 W2 R3 W4 => R1 W4 W2 R3
+R1 W2 W3 R4 => R1 W3 W2 R4
+R1 W2 W3 W4 => R1 W4 W2 W3
+W1 R2 R3 R4 => W1 R3 R4 R2
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R4 R2
+W1 R2 W3 W4 => W1 W4 W3 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W4 W2 R3
+W1 W2 W3 R4 => W1 W3 W2 R4
+W1 W2 W3 W4 => W1 W4 W3 W2
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4
+R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4
+R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4
+R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5
+R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3
+R1 W2 R3 R4 R5 => R1 W2 R5 R3 R4
+R1 W2 R3 R4 W5 => R1 W5 W2 R4 R3
+R1 W2 R3 W4 R5 => R1 W4 W2 R3 R5
+R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3
+R1 W2 W3 R4 R5 => R1 W3 W2 R4 R5
+R1 W2 W3 R4 W5 => R1 W5 W2 W3 R4
+R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5
+R1 W2 W3 W4 W5 => R1 W5 W4 W3 W2
+W1 R2 R3 R4 R5 => W1 R4 R5 R2 R3
+W1 R2 R3 R4 W5 => W1 W5 R4 R3 R2
+W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2
+W1 R2 R3 W4 W5 => W1 W5 W4 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2
+W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2
+W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2
+W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2
+W1 W2 R3 R4 R5 => W1 W2 R5 R3 R4
+W1 W2 R3 R4 W5 => W1 W5 W2 R3 R4
+W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3
+W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3
+W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4
+W1 W2 W3 R4 W5 => W1 W5 W2 W3 R4
+W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5
+W1 W2 W3 W4 W5 => W1 W5 W4 W3 W2
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris10-3 b/test-programs/pthread-rwlock/outputs/rwlock-solaris10-3
new file mode 100644 (file)
index 0000000..057047b
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W3 W2
+W1 R2 R3 => W1 R3 R2
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W4 W3
+R1 W2 R3 R4 => R1 W2 R3 R4
+R1 W2 R3 W4 => R1 W4 W2 R3
+R1 W2 W3 R4 => R1 W3 W2 R4
+R1 W2 W3 W4 => R1 W4 W2 W3
+W1 R2 R3 R4 => W1 R4 R3 R2
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R4 R2
+W1 R2 W3 W4 => W1 W4 W3 R2
+W1 W2 R3 R4 => W1 W2 R4 R3
+W1 W2 R3 W4 => W1 W4 W2 R3
+W1 W2 W3 R4 => W1 W3 W2 R4
+W1 W2 W3 W4 => W1 W4 W3 W2
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4
+R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4
+R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4
+R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5
+R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3
+R1 W2 R3 R4 R5 => R1 W2 R5 R4 R3
+R1 W2 R3 R4 W5 => R1 W5 W2 R4 R3
+R1 W2 R3 W4 R5 => R1 W4 W2 R5 R3
+R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3
+R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4
+R1 W2 W3 R4 W5 => R1 W5 W2 W3 R4
+R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5
+R1 W2 W3 W4 W5 => R1 W5 W4 W3 W2
+W1 R2 R3 R4 R5 => W1 R2 R5 R4 R3
+W1 R2 R3 R4 W5 => W1 W5 R3 R4 R2
+W1 R2 R3 W4 R5 => W1 W4 R5 R2 R3
+W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2
+W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2
+W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2
+W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2
+W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2
+W1 W2 R3 R4 R5 => W1 W2 R5 R3 R4
+W1 W2 R3 R4 W5 => W1 W5 W2 R4 R3
+W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3
+W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3
+W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4
+W1 W2 W3 R4 W5 => W1 W5 W2 W3 R4
+W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5
+W1 W2 W3 W4 W5 => W1 W5 W4 W3 W2
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris10-4 b/test-programs/pthread-rwlock/outputs/rwlock-solaris10-4
new file mode 100644 (file)
index 0000000..8b359ee
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W3 W2
+W1 R2 R3 => W1 R3 R2
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W4 W3
+R1 W2 R3 R4 => R1 W2 R4 R3
+R1 W2 R3 W4 => R1 W4 W2 R3
+R1 W2 W3 R4 => R1 W3 W2 R4
+R1 W2 W3 W4 => R1 W4 W2 W3
+W1 R2 R3 R4 => W1 R3 R4 R2
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W4 W3 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W4 W2 R3
+W1 W2 W3 R4 => W1 W3 W2 R4
+W1 W2 W3 W4 => W1 W4 W3 W2
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4
+R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4
+R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4
+R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5
+R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3
+R1 W2 R3 R4 R5 => R1 W2 R4 R5 R3
+R1 W2 R3 R4 W5 => R1 W5 W2 R4 R3
+R1 W2 R3 W4 R5 => R1 W4 W2 R5 R3
+R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3
+R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4
+R1 W2 W3 R4 W5 => R1 W5 W2 W3 R4
+R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5
+R1 W2 W3 W4 W5 => R1 W5 W4 W3 W2
+W1 R2 R3 R4 R5 => W1 R5 R3 R2 R4
+W1 R2 R3 R4 W5 => W1 W5 R3 R2 R4
+W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2
+W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2
+W1 R2 W3 R4 R5 => W1 W3 R5 R2 R4
+W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2
+W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2
+W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2
+W1 W2 R3 R4 R5 => W1 W2 R5 R3 R4
+W1 W2 R3 R4 W5 => W1 W5 W2 R4 R3
+W1 W2 R3 W4 R5 => W1 W4 W2 R3 R5
+W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3
+W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4
+W1 W2 W3 R4 W5 => W1 W5 W2 W3 R4
+W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5
+W1 W2 W3 W4 W5 => W1 W5 W4 W3 W2
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris10-5 b/test-programs/pthread-rwlock/outputs/rwlock-solaris10-5
new file mode 100644 (file)
index 0000000..3c69c2a
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W3 W2
+W1 R2 R3 => W1 R3 R2
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W4 W3
+R1 W2 R3 R4 => R1 W2 R3 R4
+R1 W2 R3 W4 => R1 W4 W2 R3
+R1 W2 W3 R4 => R1 W3 W2 R4
+R1 W2 W3 W4 => R1 W4 W2 W3
+W1 R2 R3 R4 => W1 R4 R2 R3
+W1 R2 R3 W4 => W1 W4 R2 R3
+W1 R2 W3 R4 => W1 W3 R4 R2
+W1 R2 W3 W4 => W1 W4 W3 R2
+W1 W2 R3 R4 => W1 W2 R4 R3
+W1 W2 R3 W4 => W1 W4 W2 R3
+W1 W2 W3 R4 => W1 W3 W2 R4
+W1 W2 W3 W4 => W1 W4 W3 W2
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4
+R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4
+R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4
+R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5
+R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3
+R1 W2 R3 R4 R5 => R1 W2 R5 R4 R3
+R1 W2 R3 R4 W5 => R1 W5 W2 R4 R3
+R1 W2 R3 W4 R5 => R1 W4 W2 R5 R3
+R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3
+R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4
+R1 W2 W3 R4 W5 => R1 W5 W2 W3 R4
+R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5
+R1 W2 W3 W4 W5 => R1 W5 W4 W3 W2
+W1 R2 R3 R4 R5 => W1 R5 R3 R2 R4
+W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4
+W1 R2 R3 W4 R5 => W1 W4 R5 R2 R3
+W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2
+W1 R2 W3 R4 R5 => W1 W3 R5 R2 R4
+W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2
+W1 R2 W3 W4 R5 => W1 W4 W3 R2 R5
+W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2
+W1 W2 R3 R4 R5 => W1 W2 R4 R3 R5
+W1 W2 R3 R4 W5 => W1 W5 W2 R3 R4
+W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3
+W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3
+W1 W2 W3 R4 R5 => W1 W3 W2 R4 R5
+W1 W2 W3 R4 W5 => W1 W5 W2 W3 R4
+W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5
+W1 W2 W3 W4 W5 => W1 W5 W4 W3 W2
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris10-6 b/test-programs/pthread-rwlock/outputs/rwlock-solaris10-6
new file mode 100644 (file)
index 0000000..a8257e6
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W3 W2
+W1 R2 R3 => W1 R3 R2
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W4 W3
+R1 W2 R3 R4 => R1 W2 R3 R4
+R1 W2 R3 W4 => R1 W4 W2 R3
+R1 W2 W3 R4 => R1 W3 W2 R4
+R1 W2 W3 W4 => R1 W4 W2 W3
+W1 R2 R3 R4 => W1 R3 R4 R2
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R4 R2
+W1 R2 W3 W4 => W1 W4 W3 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W4 W2 R3
+W1 W2 W3 R4 => W1 W3 W2 R4
+W1 W2 W3 W4 => W1 W4 W3 W2
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4
+R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4
+R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4
+R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5
+R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3
+R1 W2 R3 R4 R5 => R1 W2 R5 R4 R3
+R1 W2 R3 R4 W5 => R1 W5 W2 R3 R4
+R1 W2 R3 W4 R5 => R1 W4 W2 R5 R3
+R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3
+R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4
+R1 W2 W3 R4 W5 => R1 W5 W2 W3 R4
+R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5
+R1 W2 W3 W4 W5 => R1 W5 W4 W3 W2
+W1 R2 R3 R4 R5 => W1 R5 R4 R3 R2
+W1 R2 R3 R4 W5 => W1 W5 R3 R2 R4
+W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5
+W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2
+W1 R2 W3 R4 R5 => W1 W3 R5 R2 R4
+W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2
+W1 R2 W3 W4 R5 => W1 W4 W3 R2 R5
+W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2
+W1 W2 R3 R4 R5 => W1 W2 R5 R3 R4
+W1 W2 R3 R4 W5 => W1 W5 W2 R4 R3
+W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3
+W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3
+W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4
+W1 W2 W3 R4 W5 => W1 W5 W2 W3 R4
+W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5
+W1 W2 W3 W4 W5 => W1 W5 W4 W3 W2
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris10-7 b/test-programs/pthread-rwlock/outputs/rwlock-solaris10-7
new file mode 100644 (file)
index 0000000..ed2d9d6
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W3 W2
+W1 R2 R3 => W1 R3 R2
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W4 W3
+R1 W2 R3 R4 => R1 W2 R4 R3
+R1 W2 R3 W4 => R1 W4 W2 R3
+R1 W2 W3 R4 => R1 W3 W2 R4
+R1 W2 W3 W4 => R1 W4 W2 W3
+W1 R2 R3 R4 => W1 R4 R3 R2
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R4 R2
+W1 R2 W3 W4 => W1 W4 W3 R2
+W1 W2 R3 R4 => W1 W2 R4 R3
+W1 W2 R3 W4 => W1 W4 W2 R3
+W1 W2 W3 R4 => W1 W3 W2 R4
+W1 W2 W3 W4 => W1 W4 W3 W2
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4
+R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4
+R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4
+R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5
+R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3
+R1 W2 R3 R4 R5 => R1 W2 R5 R4 R3
+R1 W2 R3 R4 W5 => R1 W5 W2 R3 R4
+R1 W2 R3 W4 R5 => R1 W4 W2 R3 R5
+R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3
+R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4
+R1 W2 W3 R4 W5 => R1 W5 W2 W3 R4
+R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5
+R1 W2 W3 W4 W5 => R1 W5 W4 W3 W2
+W1 R2 R3 R4 R5 => W1 R2 R3 R5 R4
+W1 R2 R3 R4 W5 => W1 W5 R4 R2 R3
+W1 R2 R3 W4 R5 => W1 W4 R3 R5 R2
+W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2
+W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2
+W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2
+W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2
+W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2
+W1 W2 R3 R4 R5 => W1 W2 R3 R5 R4
+W1 W2 R3 R4 W5 => W1 W5 W2 R4 R3
+W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3
+W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3
+W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4
+W1 W2 W3 R4 W5 => W1 W5 W2 W3 R4
+W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5
+W1 W2 W3 W4 W5 => W1 W5 W4 W3 W2
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris10-8 b/test-programs/pthread-rwlock/outputs/rwlock-solaris10-8
new file mode 100644 (file)
index 0000000..93e29d4
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W3 W2
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W4 W3
+R1 W2 R3 R4 => R1 W2 R4 R3
+R1 W2 R3 W4 => R1 W4 W2 R3
+R1 W2 W3 R4 => R1 W3 W2 R4
+R1 W2 W3 W4 => R1 W4 W2 W3
+W1 R2 R3 R4 => W1 R4 R3 R2
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R4 R2
+W1 R2 W3 W4 => W1 W4 W3 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W4 W2 R3
+W1 W2 W3 R4 => W1 W3 W2 R4
+W1 W2 W3 W4 => W1 W4 W3 W2
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4
+R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5
+R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4
+R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5
+R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3
+R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5
+R1 W2 R3 R4 W5 => R1 W5 W2 R4 R3
+R1 W2 R3 W4 R5 => R1 W4 W2 R5 R3
+R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3
+R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4
+R1 W2 W3 R4 W5 => R1 W5 W2 W3 R4
+R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5
+R1 W2 W3 W4 W5 => R1 W5 W4 W3 W2
+W1 R2 R3 R4 R5 => W1 R5 R3 R2 R4
+W1 R2 R3 R4 W5 => W1 W5 R3 R4 R2
+W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2
+W1 R2 R3 W4 W5 => W1 W5 W4 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2
+W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2
+W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2
+W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2
+W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3
+W1 W2 R3 R4 W5 => W1 W5 W2 R4 R3
+W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3
+W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3
+W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4
+W1 W2 W3 R4 W5 => W1 W5 W2 W3 R4
+W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5
+W1 W2 W3 W4 W5 => W1 W5 W4 W3 W2
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris10-9 b/test-programs/pthread-rwlock/outputs/rwlock-solaris10-9
new file mode 100644 (file)
index 0000000..6defb2f
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W3 W2
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W2 W3
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W4 W3
+R1 W2 R3 R4 => R1 W2 R4 R3
+R1 W2 R3 W4 => R1 W4 W2 R3
+R1 W2 W3 R4 => R1 W3 W2 R4
+R1 W2 W3 W4 => R1 W4 W2 W3
+W1 R2 R3 R4 => W1 R4 R3 R2
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R4 R2
+W1 R2 W3 W4 => W1 W4 W3 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W4 W2 R3
+W1 W2 W3 R4 => W1 W3 W2 R4
+W1 W2 W3 W4 => W1 W4 W3 W2
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4
+R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4
+R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4
+R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5
+R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3
+R1 W2 R3 R4 R5 => R1 W2 R5 R4 R3
+R1 W2 R3 R4 W5 => R1 W5 W2 R4 R3
+R1 W2 R3 W4 R5 => R1 W4 W2 R3 R5
+R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3
+R1 W2 W3 R4 R5 => R1 W3 W2 R4 R5
+R1 W2 W3 R4 W5 => R1 W5 W2 W3 R4
+R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5
+R1 W2 W3 W4 W5 => R1 W5 W4 W3 W2
+W1 R2 R3 R4 R5 => W1 R4 R5 R3 R2
+W1 R2 R3 R4 W5 => W1 W5 R4 R2 R3
+W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2
+W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2
+W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2
+W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2
+W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2
+W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2
+W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3
+W1 W2 R3 R4 W5 => W1 W5 W2 R3 R4
+W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3
+W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3
+W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4
+W1 W2 W3 R4 W5 => W1 W5 W2 W3 R4
+W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5
+W1 W2 W3 W4 W5 => W1 W5 W4 W3 W2
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris11-1 b/test-programs/pthread-rwlock/outputs/rwlock-solaris11-1
new file mode 100644 (file)
index 0000000..889fedb
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W3 W2
+W1 R2 R3 => W1 R3 R2
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W3 W2
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W4 W3
+R1 W2 R3 R4 => R1 W2 R4 R3
+R1 W2 R3 W4 => R1 W4 W2 R3
+R1 W2 W3 R4 => R1 W3 W2 R4
+R1 W2 W3 W4 => R1 W3 W2 W4
+W1 R2 R3 R4 => W1 R4 R2 R3
+W1 R2 R3 W4 => W1 W4 R2 R3
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W4 W3 R2
+W1 W2 R3 R4 => W1 W2 R4 R3
+W1 W2 R3 W4 => W1 W4 W2 R3
+W1 W2 W3 R4 => W1 W3 W2 R4
+W1 W2 W3 W4 => W1 W3 W2 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4
+R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5
+R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4
+R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5
+R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3
+R1 W2 R3 R4 R5 => R1 W2 R4 R5 R3
+R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4
+R1 W2 R3 W4 R5 => R1 W4 W2 R3 R5
+R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3
+R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4
+R1 W2 W3 R4 W5 => R1 W5 W3 W2 R4
+R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5
+R1 W2 W3 W4 W5 => R1 W5 W4 W2 W3
+W1 R2 R3 R4 R5 => W1 R5 R4 R3 R2
+W1 R2 R3 R4 W5 => W1 W5 R4 R3 R2
+W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2
+W1 R2 R3 W4 W5 => W1 W5 W4 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R2 R5 R4
+W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2
+W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2
+W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2
+W1 W2 R3 R4 R5 => W1 W2 R4 R5 R3
+W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3
+W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3
+W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3
+W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4
+W1 W2 W3 R4 W5 => W1 W5 W3 W2 R4
+W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5
+W1 W2 W3 W4 W5 => W1 W5 W4 W2 W3
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris11-2 b/test-programs/pthread-rwlock/outputs/rwlock-solaris11-2
new file mode 100644 (file)
index 0000000..2105e9a
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W3 W2
+W1 R2 R3 => W1 R3 R2
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W3 W2
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W4 W3
+R1 W2 R3 R4 => R1 W2 R3 R4
+R1 W2 R3 W4 => R1 W4 W2 R3
+R1 W2 W3 R4 => R1 W3 W2 R4
+R1 W2 W3 W4 => R1 W3 W2 W4
+W1 R2 R3 R4 => W1 R4 R3 R2
+W1 R2 R3 W4 => W1 W4 R2 R3
+W1 R2 W3 R4 => W1 W3 R4 R2
+W1 R2 W3 W4 => W1 W4 W3 R2
+W1 W2 R3 R4 => W1 W2 R4 R3
+W1 W2 R3 W4 => W1 W4 W2 R3
+W1 W2 W3 R4 => W1 W3 W2 R4
+W1 W2 W3 W4 => W1 W3 W2 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4
+R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4
+R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4
+R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5
+R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3
+R1 W2 R3 R4 R5 => R1 W2 R4 R5 R3
+R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4
+R1 W2 R3 W4 R5 => R1 W4 W2 R5 R3
+R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3
+R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4
+R1 W2 W3 R4 W5 => R1 W5 W3 W2 R4
+R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5
+R1 W2 W3 W4 W5 => R1 W5 W4 W2 W3
+W1 R2 R3 R4 R5 => W1 R5 R4 R2 R3
+W1 R2 R3 R4 W5 => W1 W5 R4 R3 R2
+W1 R2 R3 W4 R5 => W1 W4 R5 R2 R3
+W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2
+W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2
+W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2
+W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2
+W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2
+W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3
+W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4
+W1 W2 R3 W4 R5 => W1 W4 W2 R3 R5
+W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3
+W1 W2 W3 R4 R5 => W1 W3 W2 R4 R5
+W1 W2 W3 R4 W5 => W1 W5 W3 W2 R4
+W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5
+W1 W2 W3 W4 W5 => W1 W5 W4 W2 W3
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris11-3 b/test-programs/pthread-rwlock/outputs/rwlock-solaris11-3
new file mode 100644 (file)
index 0000000..54d56e8
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W3 W2
+W1 R2 R3 => W1 R3 R2
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W3 W2
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W4 W3
+R1 W2 R3 R4 => R1 W2 R3 R4
+R1 W2 R3 W4 => R1 W4 W2 R3
+R1 W2 W3 R4 => R1 W3 W2 R4
+R1 W2 W3 W4 => R1 W3 W2 W4
+W1 R2 R3 R4 => W1 R4 R3 R2
+W1 R2 R3 W4 => W1 W4 R2 R3
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W4 W3 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W4 W2 R3
+W1 W2 W3 R4 => W1 W3 W2 R4
+W1 W2 W3 W4 => W1 W3 W2 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4
+R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5
+R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4
+R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5
+R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3
+R1 W2 R3 R4 R5 => R1 W2 R5 R4 R3
+R1 W2 R3 R4 W5 => R1 W2 W5 R4 R3
+R1 W2 R3 W4 R5 => R1 W4 W2 R3 R5
+R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3
+R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4
+R1 W2 W3 R4 W5 => R1 W5 W3 W2 R4
+R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5
+R1 W2 W3 W4 W5 => R1 W5 W4 W2 W3
+W1 R2 R3 R4 R5 => W1 R5 R4 R2 R3
+W1 R2 R3 R4 W5 => W1 W5 R4 R2 R3
+W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2
+W1 R2 R3 W4 W5 => W1 W5 W4 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2
+W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2
+W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2
+W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2
+W1 W2 R3 R4 R5 => W1 W2 R5 R3 R4
+W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4
+W1 W2 R3 W4 R5 => W1 W4 W2 R3 R5
+W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3
+W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4
+W1 W2 W3 R4 W5 => W1 W5 W3 W2 R4
+W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5
+W1 W2 W3 W4 W5 => W1 W5 W4 W2 W3
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris11-4 b/test-programs/pthread-rwlock/outputs/rwlock-solaris11-4
new file mode 100644 (file)
index 0000000..1227156
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W3 W2
+W1 R2 R3 => W1 R3 R2
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W3 W2
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W4 W3
+R1 W2 R3 R4 => R1 W2 R4 R3
+R1 W2 R3 W4 => R1 W4 W2 R3
+R1 W2 W3 R4 => R1 W3 W2 R4
+R1 W2 W3 W4 => R1 W3 W2 W4
+W1 R2 R3 R4 => W1 R4 R3 R2
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W4 W3 R2
+W1 W2 R3 R4 => W1 W2 R4 R3
+W1 W2 R3 W4 => W1 W4 W2 R3
+W1 W2 W3 R4 => W1 W3 W2 R4
+W1 W2 W3 W4 => W1 W3 W2 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4
+R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5
+R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4
+R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5
+R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3
+R1 W2 R3 R4 R5 => R1 W2 R4 R5 R3
+R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4
+R1 W2 R3 W4 R5 => R1 W4 W2 R5 R3
+R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3
+R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4
+R1 W2 W3 R4 W5 => R1 W5 W3 W2 R4
+R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5
+R1 W2 W3 W4 W5 => R1 W5 W4 W2 W3
+W1 R2 R3 R4 R5 => W1 R5 R4 R3 R2
+W1 R2 R3 R4 W5 => W1 W5 R4 R2 R3
+W1 R2 R3 W4 R5 => W1 W4 R3 R5 R2
+W1 R2 R3 W4 W5 => W1 W5 W4 R2 R3
+W1 R2 W3 R4 R5 => W1 W3 R2 R5 R4
+W1 R2 W3 R4 W5 => W1 W5 W3 R2 R4
+W1 R2 W3 W4 R5 => W1 W4 W3 R2 R5
+W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2
+W1 W2 R3 R4 R5 => W1 W2 R4 R5 R3
+W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4
+W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3
+W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3
+W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4
+W1 W2 W3 R4 W5 => W1 W5 W3 W2 R4
+W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5
+W1 W2 W3 W4 W5 => W1 W5 W4 W2 W3
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris11-5 b/test-programs/pthread-rwlock/outputs/rwlock-solaris11-5
new file mode 100644 (file)
index 0000000..d9d6a4a
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W3 W2
+W1 R2 R3 => W1 R2 R3
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W3 W2
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W4 W3
+R1 W2 R3 R4 => R1 W2 R4 R3
+R1 W2 R3 W4 => R1 W4 W2 R3
+R1 W2 W3 R4 => R1 W3 W2 R4
+R1 W2 W3 W4 => R1 W3 W2 W4
+W1 R2 R3 R4 => W1 R4 R3 R2
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R4 R2
+W1 R2 W3 W4 => W1 W4 W3 R2
+W1 W2 R3 R4 => W1 W2 R4 R3
+W1 W2 R3 W4 => W1 W4 W2 R3
+W1 W2 W3 R4 => W1 W3 W2 R4
+W1 W2 W3 W4 => W1 W3 W2 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4
+R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5
+R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4
+R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5
+R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3
+R1 W2 R3 R4 R5 => R1 W2 R4 R5 R3
+R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4
+R1 W2 R3 W4 R5 => R1 W4 W2 R5 R3
+R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3
+R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4
+R1 W2 W3 R4 W5 => R1 W5 W3 W2 R4
+R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5
+R1 W2 W3 W4 W5 => R1 W5 W4 W2 W3
+W1 R2 R3 R4 R5 => W1 R5 R4 R2 R3
+W1 R2 R3 R4 W5 => W1 W5 R4 R2 R3
+W1 R2 R3 W4 R5 => W1 W4 R3 R5 R2
+W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2
+W1 R2 W3 R4 R5 => W1 W3 R2 R5 R4
+W1 R2 W3 R4 W5 => W1 W5 W3 R2 R4
+W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2
+W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2
+W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3
+W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3
+W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3
+W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3
+W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4
+W1 W2 W3 R4 W5 => W1 W5 W3 W2 R4
+W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5
+W1 W2 W3 W4 W5 => W1 W5 W4 W2 W3
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris11-6 b/test-programs/pthread-rwlock/outputs/rwlock-solaris11-6
new file mode 100644 (file)
index 0000000..cbb2394
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W3 W2
+W1 R2 R3 => W1 R3 R2
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W3 W2
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W4 W3
+R1 W2 R3 R4 => R1 W2 R4 R3
+R1 W2 R3 W4 => R1 W4 W2 R3
+R1 W2 W3 R4 => R1 W3 W2 R4
+R1 W2 W3 W4 => R1 W3 W2 W4
+W1 R2 R3 R4 => W1 R4 R3 R2
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R4 R2
+W1 R2 W3 W4 => W1 W4 W3 R2
+W1 W2 R3 R4 => W1 W2 R4 R3
+W1 W2 R3 W4 => W1 W4 W2 R3
+W1 W2 W3 R4 => W1 W3 W2 R4
+W1 W2 W3 W4 => W1 W3 W2 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4
+R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5
+R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4
+R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5
+R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3
+R1 W2 R3 R4 R5 => R1 W2 R5 R3 R4
+R1 W2 R3 R4 W5 => R1 W2 W5 R4 R3
+R1 W2 R3 W4 R5 => R1 W4 W2 R5 R3
+R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3
+R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4
+R1 W2 W3 R4 W5 => R1 W5 W3 W2 R4
+R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5
+R1 W2 W3 W4 W5 => R1 W5 W4 W2 W3
+W1 R2 R3 R4 R5 => W1 R2 R5 R4 R3
+W1 R2 R3 R4 W5 => W1 W5 R3 R4 R2
+W1 R2 R3 W4 R5 => W1 W4 R3 R5 R2
+W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2
+W1 R2 W3 R4 R5 => W1 W3 R2 R5 R4
+W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2
+W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2
+W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2
+W1 W2 R3 R4 R5 => W1 W2 R4 R3 R5
+W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3
+W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3
+W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3
+W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4
+W1 W2 W3 R4 W5 => W1 W5 W3 W2 R4
+W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5
+W1 W2 W3 W4 W5 => W1 W5 W4 W2 W3
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris11-7 b/test-programs/pthread-rwlock/outputs/rwlock-solaris11-7
new file mode 100644 (file)
index 0000000..49c1cf6
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W3 W2
+W1 R2 R3 => W1 R3 R2
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W3 W2
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W4 W3
+R1 W2 R3 R4 => R1 W2 R3 R4
+R1 W2 R3 W4 => R1 W4 W2 R3
+R1 W2 W3 R4 => R1 W3 W2 R4
+R1 W2 W3 W4 => R1 W3 W2 W4
+W1 R2 R3 R4 => W1 R4 R3 R2
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W4 W3 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W4 W2 R3
+W1 W2 W3 R4 => W1 W3 W2 R4
+W1 W2 W3 W4 => W1 W3 W2 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4
+R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5
+R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4
+R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5
+R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3
+R1 W2 R3 R4 R5 => R1 W2 R4 R5 R3
+R1 W2 R3 R4 W5 => R1 W2 W5 R4 R3
+R1 W2 R3 W4 R5 => R1 W4 W2 R5 R3
+R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3
+R1 W2 W3 R4 R5 => R1 W3 W2 R4 R5
+R1 W2 W3 R4 W5 => R1 W5 W3 W2 R4
+R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5
+R1 W2 W3 W4 W5 => R1 W5 W4 W2 W3
+W1 R2 R3 R4 R5 => W1 R5 R2 R4 R3
+W1 R2 R3 R4 W5 => W1 W5 R4 R3 R2
+W1 R2 R3 W4 R5 => W1 W4 R3 R5 R2
+W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2
+W1 R2 W3 R4 R5 => W1 W3 R2 R5 R4
+W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2
+W1 R2 W3 W4 R5 => W1 W4 W3 R2 R5
+W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2
+W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3
+W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4
+W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3
+W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3
+W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4
+W1 W2 W3 R4 W5 => W1 W5 W3 W2 R4
+W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5
+W1 W2 W3 W4 W5 => W1 W5 W4 W2 W3
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris11-8 b/test-programs/pthread-rwlock/outputs/rwlock-solaris11-8
new file mode 100644 (file)
index 0000000..b8501c8
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W3 W2
+W1 R2 R3 => W1 R3 R2
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W3 W2
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W4 W3
+R1 W2 R3 R4 => R1 W2 R4 R3
+R1 W2 R3 W4 => R1 W4 W2 R3
+R1 W2 W3 R4 => R1 W3 W2 R4
+R1 W2 W3 W4 => R1 W3 W2 W4
+W1 R2 R3 R4 => W1 R3 R4 R2
+W1 R2 R3 W4 => W1 W4 R2 R3
+W1 R2 W3 R4 => W1 W3 R4 R2
+W1 R2 W3 W4 => W1 W4 W3 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W4 W2 R3
+W1 W2 W3 R4 => W1 W3 W2 R4
+W1 W2 W3 W4 => W1 W3 W2 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4
+R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5
+R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4
+R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5
+R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3
+R1 W2 R3 R4 R5 => R1 W2 R4 R5 R3
+R1 W2 R3 R4 W5 => R1 W2 W5 R4 R3
+R1 W2 R3 W4 R5 => R1 W4 W2 R5 R3
+R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3
+R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4
+R1 W2 W3 R4 W5 => R1 W5 W3 W2 R4
+R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5
+R1 W2 W3 W4 W5 => R1 W5 W4 W2 W3
+W1 R2 R3 R4 R5 => W1 R5 R4 R2 R3
+W1 R2 R3 R4 W5 => W1 W5 R4 R3 R2
+W1 R2 R3 W4 R5 => W1 W4 R3 R5 R2
+W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2
+W1 R2 W3 R4 R5 => W1 W3 R2 R5 R4
+W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2
+W1 R2 W3 W4 R5 => W1 W4 W3 R2 R5
+W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2
+W1 W2 R3 R4 R5 => W1 W2 R4 R5 R3
+W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3
+W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3
+W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3
+W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4
+W1 W2 W3 R4 W5 => W1 W5 W3 W2 R4
+W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5
+W1 W2 W3 W4 W5 => W1 W5 W4 W2 W3
diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris11-9 b/test-programs/pthread-rwlock/outputs/rwlock-solaris11-9
new file mode 100644 (file)
index 0000000..8aeade1
--- /dev/null
@@ -0,0 +1,62 @@
+R1 => R1
+W1 => W1
+R1 R2 => R1 R2
+R1 W2 => R1 W2
+W1 R2 => W1 R2
+W1 W2 => W1 W2
+R1 R2 R3 => R1 R2 R3
+R1 R2 W3 => R1 R2 W3
+R1 W2 R3 => R1 W2 R3
+R1 W2 W3 => R1 W3 W2
+W1 R2 R3 => W1 R3 R2
+W1 R2 W3 => W1 W3 R2
+W1 W2 R3 => W1 W2 R3
+W1 W2 W3 => W1 W3 W2
+R1 R2 R3 R4 => R1 R2 R3 R4
+R1 R2 R3 W4 => R1 R2 R3 W4
+R1 R2 W3 R4 => R1 R2 W3 R4
+R1 R2 W3 W4 => R1 R2 W4 W3
+R1 W2 R3 R4 => R1 W2 R3 R4
+R1 W2 R3 W4 => R1 W4 W2 R3
+R1 W2 W3 R4 => R1 W3 W2 R4
+R1 W2 W3 W4 => R1 W3 W2 W4
+W1 R2 R3 R4 => W1 R4 R3 R2
+W1 R2 R3 W4 => W1 W4 R3 R2
+W1 R2 W3 R4 => W1 W3 R2 R4
+W1 R2 W3 W4 => W1 W4 W3 R2
+W1 W2 R3 R4 => W1 W2 R3 R4
+W1 W2 R3 W4 => W1 W4 W2 R3
+W1 W2 W3 R4 => W1 W3 W2 R4
+W1 W2 W3 W4 => W1 W3 W2 W4
+R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5
+R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5
+R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5
+R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4
+R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4
+R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4
+R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5
+R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3
+R1 W2 R3 R4 R5 => R1 W2 R3 R5 R4
+R1 W2 R3 R4 W5 => R1 W2 W5 R4 R3
+R1 W2 R3 W4 R5 => R1 W4 W2 R5 R3
+R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3
+R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4
+R1 W2 W3 R4 W5 => R1 W5 W3 W2 R4
+R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5
+R1 W2 W3 W4 W5 => R1 W5 W4 W2 W3
+W1 R2 R3 R4 R5 => W1 R5 R4 R2 R3
+W1 R2 R3 R4 W5 => W1 W5 R3 R4 R2
+W1 R2 R3 W4 R5 => W1 W4 R3 R5 R2
+W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2
+W1 R2 W3 R4 R5 => W1 W3 R5 R2 R4
+W1 R2 W3 R4 W5 => W1 W5 W3 R2 R4
+W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2
+W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2
+W1 W2 R3 R4 R5 => W1 W2 R4 R5 R3
+W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3
+W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3
+W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3
+W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4
+W1 W2 W3 R4 W5 => W1 W5 W3 W2 R4
+W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5
+W1 W2 W3 W4 W5 => W1 W5 W4 W2 W3
diff --git a/test-programs/pthread-rwlock/results.txt b/test-programs/pthread-rwlock/results.txt
new file mode 100644 (file)
index 0000000..a54f750
--- /dev/null
@@ -0,0 +1,134 @@
+How do the implementations work?
+
+glibc/Linux <2.25 default, glibc/Linux PREFER_WRITER, AIX, Android
+  When releasing the last reader lock:
+    If at least one of the enqueued lock attempts is for reading, the
+    first one of them is granted.
+    Otherwise, the first of the waiting write attempts is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for writing, the
+    first one of them is granted.
+    Otherwise, one of the waiting read attempts is granted.
+  This implementation does not globally prefer readers, only when releasing
+  a reader lock.
+  This implementation does not globally prefer writers, only when releasing
+  a writer lock.
+
+glibc/Linux PREFER_WRITER_NONRECURSIVE, FreeBSD, Cygwin
+  When releasing the last reader lock:
+    The first of the enqueued lock attempts is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for writing, the
+    first one of them is granted.
+    Otherwise, one of the waiting read attempts is granted.
+  This implementation does not prefer readers.
+  This implementation does not globally prefer writers, only when releasing
+  a writer lock.
+
+glibc/Linux â‰¥2.25 default
+  When releasing the last reader lock:
+    If at least one of the enqueued lock attempts is for reading, the
+    first one of them is granted.
+    Otherwise, the first of the waiting write attempts is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for reading, one of
+    them is granted.
+    Otherwise, the first of the waiting write attempts is granted.
+  This implementation always prefers readers.
+  This implementation does not prefer writers.
+
+glibc/Hurd
+  When releasing the last reader lock:
+    If at least one of the enqueued lock attempts is for reading, the
+    first one of them is granted.
+    Otherwise, the latest (LIFO!) waiting write attempt is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for writing, the
+    latest (LIFO!) one of them is granted.
+    Otherwise, the latest (LIFO!) of the waiting read attempts is granted.
+  This implementation does not globally prefer readers, only when releasing
+  a reader lock.
+  This implementation does not globally prefer writers, only when releasing
+  a writer lock.
+  This implementation is deterministic.
+
+musl, OpenBSD
+  When releasing the last reader lock:
+    If at least one of the enqueued lock attempts is for reading, the
+    first one of them is granted.
+    Otherwise, the first of the waiting write attempts is granted.
+  When releasing a writer lock:
+    The first of the enqueued lock attempts is granted.
+  This implementation does not globally prefer readers, only when releasing
+  a reader lock.
+  This implementation does not prefer writers.
+  This implementation is deterministic.
+
+macOS
+  When releasing the last reader lock:
+    The first of the enqueued lock attempts is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for writing, the
+    first of them is granted.
+    Otherwise, one of the waiting read attempts is granted.
+  This implementation does not prefer readers.
+  This implementation does not prefer writers.
+
+NetBSD
+  When releasing the last reader lock:
+    The first of the enqueued lock attempts is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for writing, the
+    first one of them is granted.
+    Otherwise, the latest (LIFO!) of the waiting read attempts is granted.
+  This implementation does not prefer readers.
+  This implementation does not globally prefer writers, only when releasing
+  a writer lock.
+  This implementation is deterministic.
+
+Solaris 10
+  When releasing the last reader lock:
+    If at least one of the enqueued lock attempts is for writing, the
+    latest (LIFO!) one of them is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for writing, one of
+    the waiting write attempts is granted (not necessarily the first one).
+    Otherwise, one of the waiting read attempts is granted.
+  This implementation does not prefer readers.
+  This implementation always prefers writers.
+
+Solaris 11
+  When releasing the last reader lock:
+    If at least one of the enqueued lock attempts is for writing, one
+    of them is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for writing, one of
+    the waiting write attempts is granted (not necessarily the first one).
+    Otherwise, one of the waiting read attempts is granted.
+  This implementation does not prefer readers.
+  This implementation always prefers writers.
+
+gnulib on native Windows
+  When releasing the last reader lock:
+    The first of the enqueued lock attempts is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for writing, the
+    first one of them is granted.
+    Otherwise, the first of the waiting read attempts is granted.
+  This implementation does not prefer readers.
+  This implementation does not globally prefer writers, only when releasing
+  a writer lock.
+  This implementation is deterministic.
+
+gnulib on native Windows, modified to prefer readers
+  When releasing the last reader lock:
+    If at least one of the enqueued lock attempts is for reading, the
+    first one of them is granted.
+    Otherwise, the first of the waiting write attempts is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for reading, the
+    first of them is granted.
+    Otherwise, the first of the waiting write attempts is granted.
+  This implementation always prefers readers.
+  This implementation does not prefer writers.
+  This implementation is deterministic.
diff --git a/test-programs/pthread-rwlock/results/rwlock-aix.res b/test-programs/pthread-rwlock/results/rwlock-aix.res
new file mode 100644 (file)
index 0000000..e7c9b0c
--- /dev/null
@@ -0,0 +1,12 @@
+  When releasing the last reader lock:
+    If at least one of the enqueued lock attempts is for reading, the
+    first one of them is granted.
+    Otherwise, the first of the waiting write attempts is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for writing, the
+    first one of them is granted.
+    Otherwise, one of the waiting read attempts is granted.
+  This implementation does not globally prefer readers, only when releasing
+  a reader lock.
+  This implementation does not globally prefer writers, only when releasing
+  a writer lock.
diff --git a/test-programs/pthread-rwlock/results/rwlock-android.res b/test-programs/pthread-rwlock/results/rwlock-android.res
new file mode 100644 (file)
index 0000000..e7c9b0c
--- /dev/null
@@ -0,0 +1,12 @@
+  When releasing the last reader lock:
+    If at least one of the enqueued lock attempts is for reading, the
+    first one of them is granted.
+    Otherwise, the first of the waiting write attempts is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for writing, the
+    first one of them is granted.
+    Otherwise, one of the waiting read attempts is granted.
+  This implementation does not globally prefer readers, only when releasing
+  a reader lock.
+  This implementation does not globally prefer writers, only when releasing
+  a writer lock.
diff --git a/test-programs/pthread-rwlock/results/rwlock-cygwin.res b/test-programs/pthread-rwlock/results/rwlock-cygwin.res
new file mode 100644 (file)
index 0000000..1c39cf2
--- /dev/null
@@ -0,0 +1,9 @@
+  When releasing the last reader lock:
+    The first of the enqueued lock attempts is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for writing, the
+    first one of them is granted.
+    Otherwise, one of the waiting read attempts is granted.
+  This implementation does not prefer readers.
+  This implementation does not globally prefer writers, only when releasing
+  a writer lock.
diff --git a/test-programs/pthread-rwlock/results/rwlock-freebsd.res b/test-programs/pthread-rwlock/results/rwlock-freebsd.res
new file mode 100644 (file)
index 0000000..1c39cf2
--- /dev/null
@@ -0,0 +1,9 @@
+  When releasing the last reader lock:
+    The first of the enqueued lock attempts is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for writing, the
+    first one of them is granted.
+    Otherwise, one of the waiting read attempts is granted.
+  This implementation does not prefer readers.
+  This implementation does not globally prefer writers, only when releasing
+  a writer lock.
diff --git a/test-programs/pthread-rwlock/results/rwlock-glibc-hurd.res b/test-programs/pthread-rwlock/results/rwlock-glibc-hurd.res
new file mode 100644 (file)
index 0000000..d1e9a3e
--- /dev/null
@@ -0,0 +1,13 @@
+  When releasing the last reader lock:
+    If at least one of the enqueued lock attempts is for reading, the
+    first one of them is granted.
+    Otherwise, the latest (LIFO!) waiting write attempt is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for writing, the
+    latest (LIFO!) one of them is granted.
+    Otherwise, the latest (LIFO!) of the waiting read attempts is granted.
+  This implementation does not globally prefer readers, only when releasing
+  a reader lock.
+  This implementation does not globally prefer writers, only when releasing
+  a writer lock.
+  This implementation is deterministic.
diff --git a/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.17-default.res b/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.17-default.res
new file mode 100644 (file)
index 0000000..e7c9b0c
--- /dev/null
@@ -0,0 +1,12 @@
+  When releasing the last reader lock:
+    If at least one of the enqueued lock attempts is for reading, the
+    first one of them is granted.
+    Otherwise, the first of the waiting write attempts is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for writing, the
+    first one of them is granted.
+    Otherwise, one of the waiting read attempts is granted.
+  This implementation does not globally prefer readers, only when releasing
+  a reader lock.
+  This implementation does not globally prefer writers, only when releasing
+  a writer lock.
diff --git a/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.17-prefer_writer.res b/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.17-prefer_writer.res
new file mode 100644 (file)
index 0000000..e7c9b0c
--- /dev/null
@@ -0,0 +1,12 @@
+  When releasing the last reader lock:
+    If at least one of the enqueued lock attempts is for reading, the
+    first one of them is granted.
+    Otherwise, the first of the waiting write attempts is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for writing, the
+    first one of them is granted.
+    Otherwise, one of the waiting read attempts is granted.
+  This implementation does not globally prefer readers, only when releasing
+  a reader lock.
+  This implementation does not globally prefer writers, only when releasing
+  a writer lock.
diff --git a/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.17-prefer_writer_nonrecursive.res b/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.17-prefer_writer_nonrecursive.res
new file mode 100644 (file)
index 0000000..1c39cf2
--- /dev/null
@@ -0,0 +1,9 @@
+  When releasing the last reader lock:
+    The first of the enqueued lock attempts is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for writing, the
+    first one of them is granted.
+    Otherwise, one of the waiting read attempts is granted.
+  This implementation does not prefer readers.
+  This implementation does not globally prefer writers, only when releasing
+  a writer lock.
diff --git a/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.24-default.res b/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.24-default.res
new file mode 100644 (file)
index 0000000..e7c9b0c
--- /dev/null
@@ -0,0 +1,12 @@
+  When releasing the last reader lock:
+    If at least one of the enqueued lock attempts is for reading, the
+    first one of them is granted.
+    Otherwise, the first of the waiting write attempts is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for writing, the
+    first one of them is granted.
+    Otherwise, one of the waiting read attempts is granted.
+  This implementation does not globally prefer readers, only when releasing
+  a reader lock.
+  This implementation does not globally prefer writers, only when releasing
+  a writer lock.
diff --git a/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.24-prefer_writer.res b/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.24-prefer_writer.res
new file mode 100644 (file)
index 0000000..e7c9b0c
--- /dev/null
@@ -0,0 +1,12 @@
+  When releasing the last reader lock:
+    If at least one of the enqueued lock attempts is for reading, the
+    first one of them is granted.
+    Otherwise, the first of the waiting write attempts is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for writing, the
+    first one of them is granted.
+    Otherwise, one of the waiting read attempts is granted.
+  This implementation does not globally prefer readers, only when releasing
+  a reader lock.
+  This implementation does not globally prefer writers, only when releasing
+  a writer lock.
diff --git a/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.24-prefer_writer_nonrecursive.res b/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.24-prefer_writer_nonrecursive.res
new file mode 100644 (file)
index 0000000..1c39cf2
--- /dev/null
@@ -0,0 +1,9 @@
+  When releasing the last reader lock:
+    The first of the enqueued lock attempts is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for writing, the
+    first one of them is granted.
+    Otherwise, one of the waiting read attempts is granted.
+  This implementation does not prefer readers.
+  This implementation does not globally prefer writers, only when releasing
+  a writer lock.
diff --git a/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.35-default.res b/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.35-default.res
new file mode 100644 (file)
index 0000000..f6f42c9
--- /dev/null
@@ -0,0 +1,10 @@
+  When releasing the last reader lock:
+    If at least one of the enqueued lock attempts is for reading, the
+    first one of them is granted.
+    Otherwise, the first of the waiting write attempts is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for reading, one of
+    them is granted.
+    Otherwise, the first of the waiting write attempts is granted.
+  This implementation always prefers readers.
+  This implementation does not prefer writers.
diff --git a/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.35-prefer_writer.res b/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.35-prefer_writer.res
new file mode 100644 (file)
index 0000000..e7c9b0c
--- /dev/null
@@ -0,0 +1,12 @@
+  When releasing the last reader lock:
+    If at least one of the enqueued lock attempts is for reading, the
+    first one of them is granted.
+    Otherwise, the first of the waiting write attempts is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for writing, the
+    first one of them is granted.
+    Otherwise, one of the waiting read attempts is granted.
+  This implementation does not globally prefer readers, only when releasing
+  a reader lock.
+  This implementation does not globally prefer writers, only when releasing
+  a writer lock.
diff --git a/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.35-prefer_writer_nonrecursive.res b/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.35-prefer_writer_nonrecursive.res
new file mode 100644 (file)
index 0000000..1c39cf2
--- /dev/null
@@ -0,0 +1,9 @@
+  When releasing the last reader lock:
+    The first of the enqueued lock attempts is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for writing, the
+    first one of them is granted.
+    Otherwise, one of the waiting read attempts is granted.
+  This implementation does not prefer readers.
+  This implementation does not globally prefer writers, only when releasing
+  a writer lock.
diff --git a/test-programs/pthread-rwlock/results/rwlock-gnulib-windows-prefer_reader.res b/test-programs/pthread-rwlock/results/rwlock-gnulib-windows-prefer_reader.res
new file mode 100644 (file)
index 0000000..1342104
--- /dev/null
@@ -0,0 +1,11 @@
+  When releasing the last reader lock:
+    If at least one of the enqueued lock attempts is for reading, the
+    first one of them is granted.
+    Otherwise, the first of the waiting write attempts is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for reading, the
+    first of them is granted.
+    Otherwise, the first of the waiting write attempts is granted.
+  This implementation always prefers readers.
+  This implementation does not prefer writers.
+  This implementation is deterministic.
diff --git a/test-programs/pthread-rwlock/results/rwlock-gnulib-windows.res b/test-programs/pthread-rwlock/results/rwlock-gnulib-windows.res
new file mode 100644 (file)
index 0000000..08ea7c9
--- /dev/null
@@ -0,0 +1,10 @@
+  When releasing the last reader lock:
+    The first of the enqueued lock attempts is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for writing, the
+    first one of them is granted.
+    Otherwise, the first of the waiting read attempts is granted.
+  This implementation does not prefer readers.
+  This implementation does not globally prefer writers, only when releasing
+  a writer lock.
+  This implementation is deterministic.
diff --git a/test-programs/pthread-rwlock/results/rwlock-macos.res b/test-programs/pthread-rwlock/results/rwlock-macos.res
new file mode 100644 (file)
index 0000000..e6e8e96
--- /dev/null
@@ -0,0 +1,8 @@
+  When releasing the last reader lock:
+    The first of the enqueued lock attempts is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for writing, the
+    first of them is granted.
+    Otherwise, one of the waiting read attempts is granted.
+  This implementation does not prefer readers.
+  This implementation does not prefer writers.
diff --git a/test-programs/pthread-rwlock/results/rwlock-musl.res b/test-programs/pthread-rwlock/results/rwlock-musl.res
new file mode 100644 (file)
index 0000000..af1b582
--- /dev/null
@@ -0,0 +1,10 @@
+  When releasing the last reader lock:
+    If at least one of the enqueued lock attempts is for reading, the
+    first one of them is granted.
+    Otherwise, the first of the waiting write attempts is granted.
+  When releasing a writer lock:
+    The first of the enqueued lock attempts is granted.
+  This implementation does not globally prefer readers, only when releasing
+  a reader lock.
+  This implementation does not prefer writers.
+  This implementation is deterministic.
diff --git a/test-programs/pthread-rwlock/results/rwlock-netbsd.res b/test-programs/pthread-rwlock/results/rwlock-netbsd.res
new file mode 100644 (file)
index 0000000..13bea13
--- /dev/null
@@ -0,0 +1,10 @@
+  When releasing the last reader lock:
+    The first of the enqueued lock attempts is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for writing, the
+    first one of them is granted.
+    Otherwise, the latest (LIFO!) of the waiting read attempts is granted.
+  This implementation does not prefer readers.
+  This implementation does not globally prefer writers, only when releasing
+  a writer lock.
+  This implementation is deterministic.
diff --git a/test-programs/pthread-rwlock/results/rwlock-openbsd.res b/test-programs/pthread-rwlock/results/rwlock-openbsd.res
new file mode 100644 (file)
index 0000000..af1b582
--- /dev/null
@@ -0,0 +1,10 @@
+  When releasing the last reader lock:
+    If at least one of the enqueued lock attempts is for reading, the
+    first one of them is granted.
+    Otherwise, the first of the waiting write attempts is granted.
+  When releasing a writer lock:
+    The first of the enqueued lock attempts is granted.
+  This implementation does not globally prefer readers, only when releasing
+  a reader lock.
+  This implementation does not prefer writers.
+  This implementation is deterministic.
diff --git a/test-programs/pthread-rwlock/results/rwlock-solaris10.res b/test-programs/pthread-rwlock/results/rwlock-solaris10.res
new file mode 100644 (file)
index 0000000..ce47120
--- /dev/null
@@ -0,0 +1,9 @@
+  When releasing the last reader lock:
+    If at least one of the enqueued lock attempts is for writing, the
+    latest (LIFO!) one of them is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for writing, one of
+    the waiting write attempts is granted (not necessarily the first one).
+    Otherwise, one of the waiting read attempts is granted.
+  This implementation does not prefer readers.
+  This implementation always prefers writers.
diff --git a/test-programs/pthread-rwlock/results/rwlock-solaris11.res b/test-programs/pthread-rwlock/results/rwlock-solaris11.res
new file mode 100644 (file)
index 0000000..a68d504
--- /dev/null
@@ -0,0 +1,9 @@
+  When releasing the last reader lock:
+    If at least one of the enqueued lock attempts is for writing, one
+    of them is granted.
+  When releasing a writer lock:
+    If at least one of the enqueued lock attempts is for writing, one of
+    the waiting write attempts is granted (not necessarily the first one).
+    Otherwise, one of the waiting read attempts is granted.
+  This implementation does not prefer readers.
+  This implementation always prefers writers.
diff --git a/test-programs/pthread-rwlock/rwlock-analyze.sh b/test-programs/pthread-rwlock/rwlock-analyze.sh
new file mode 100755 (executable)
index 0000000..255dcf6
--- /dev/null
@@ -0,0 +1,614 @@
+#!/bin/sh
+# Usage: rwlock-analyze.sh rwlock-PLATFORM-output
+
+# Copyright (C) 2024 Free Software Foundation, Inc.
+#
+# This file is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published
+# by the Free Software Foundation, either version 3 of the License,
+# or (at your option) any later version.
+#
+# This file 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
+file="$1"
+
+# Notes:
+
+# n=1 all are trivial:
+# R1 => R1
+# W1 => W1
+
+# n=2 all are trivial:
+# R1 R2 => R1 R2
+# R1 W2 => R1 W2
+# W1 R2 => W1 R2
+# W1 W2 => W1 W2
+
+# These are mandatory behaviour of rwlocks:
+# R1 R2 ... R(i-1) ... => R1 R2 ... R(i-1) ...
+# because the R2 ... R(i-1) succeed while R1 is still being held.
+
+unexpected=`grep '^R1 .*=> ' $file | grep -v '^R1 .*=> R1'; \
+            grep '^R1 R2 .*=> ' $file | grep -v '^R1 R2 .*=> R1 R2'; \
+            grep '^R1 R2 R3 .*=> ' $file | grep -v '^R1 R2 R3 .*=> R1 R2 R3'; \
+            grep '^R1 R2 R3 R4 .*=> ' $file | grep -v '^R1 R2 R3 R4 .*=> R1 R2 R3 R4'; \
+            grep '^R1 R2 R3 R4 R5 .*=> ' $file | grep -v '^R1 R2 R3 R4 R5 .*=> R1 R2 R3 R4 R5'`
+if test -n "$unexpected"; then
+  echo "!! UNEXPECTED !!"
+  echo "$unexpected"
+fi
+
+deterministic=true
+
+echo "  When releasing the last reader lock:"
+
+# These are the lines that matter:
+# R1 W2 R3 => R1 ...
+# R1 W2 W3 => R1 ...
+# R1 W2 R3 R4 => R1 ...
+# R1 W2 R3 W4 => R1 ...
+# R1 W2 W3 R4 => R1 ...
+# R1 W2 W3 W4 => R1 ...
+# R1 W2 R3 R4 R5 => R1 ...
+# R1 W2 R3 R4 W5 => R1 ...
+# R1 W2 R3 W4 R5 => R1 ...
+# R1 W2 R3 W4 W5 => R1 ...
+# R1 W2 W3 R4 R5 => R1 ...
+# R1 W2 W3 R4 W5 => R1 ...
+# R1 W2 W3 W4 R5 => R1 ...
+# R1 W2 W3 W4 W5 => R1 ...
+
+prefers_readers_1=false
+prefers_writers_1=false
+if    grep '^R1 W2 R3 => R1 W2' $file >/dev/null \
+   && grep '^R1 W2 W3 => R1 W2' $file >/dev/null \
+   && grep '^R1 W2 R3 R4 => R1 W2' $file >/dev/null \
+   && grep '^R1 W2 R3 W4 => R1 W2' $file >/dev/null \
+   && grep '^R1 W2 W3 R4 => R1 W2' $file >/dev/null \
+   && grep '^R1 W2 W3 W4 => R1 W2' $file >/dev/null \
+   && grep '^R1 W2 R3 R4 R5 => R1 W2' $file >/dev/null \
+   && grep '^R1 W2 R3 R4 W5 => R1 W2' $file >/dev/null \
+   && grep '^R1 W2 R3 W4 R5 => R1 W2' $file >/dev/null \
+   && grep '^R1 W2 R3 W4 W5 => R1 W2' $file >/dev/null \
+   && grep '^R1 W2 W3 R4 R5 => R1 W2' $file >/dev/null \
+   && grep '^R1 W2 W3 R4 W5 => R1 W2' $file >/dev/null \
+   && grep '^R1 W2 W3 W4 R5 => R1 W2' $file >/dev/null \
+   && grep '^R1 W2 W3 W4 W5 => R1 W2' $file >/dev/null \
+; then
+  echo "    The first of the enqueued lock attempts is granted."
+else
+  if    grep '^R1 W2 R3 => R1 R' $file >/dev/null \
+     && grep '^R1 W2 R3 R4 => R1 R' $file >/dev/null \
+     && grep '^R1 W2 R3 W4 => R1 R' $file >/dev/null \
+     && grep '^R1 W2 W3 R4 => R1 R' $file >/dev/null \
+     && grep '^R1 W2 R3 R4 R5 => R1 R' $file >/dev/null \
+     && grep '^R1 W2 R3 R4 W5 => R1 R' $file >/dev/null \
+     && grep '^R1 W2 R3 W4 R5 => R1 R' $file >/dev/null \
+     && grep '^R1 W2 R3 W4 W5 => R1 R' $file >/dev/null \
+     && grep '^R1 W2 W3 R4 R5 => R1 R' $file >/dev/null \
+     && grep '^R1 W2 W3 R4 W5 => R1 R' $file >/dev/null \
+     && grep '^R1 W2 W3 W4 R5 => R1 R' $file >/dev/null \
+  ; then
+    prefers_readers_1=true
+    if    grep '^R1 W2 R3 => R1 R3' $file >/dev/null \
+       && grep '^R1 W2 R3 R4 => R1 R3' $file >/dev/null \
+       && grep '^R1 W2 R3 W4 => R1 R3' $file >/dev/null \
+       && grep '^R1 W2 W3 R4 => R1 R4' $file >/dev/null \
+       && grep '^R1 W2 R3 R4 R5 => R1 R3' $file >/dev/null \
+       && grep '^R1 W2 R3 R4 W5 => R1 R3' $file >/dev/null \
+       && grep '^R1 W2 R3 W4 R5 => R1 R3' $file >/dev/null \
+       && grep '^R1 W2 R3 W4 W5 => R1 R3' $file >/dev/null \
+       && grep '^R1 W2 W3 R4 R5 => R1 R4' $file >/dev/null \
+       && grep '^R1 W2 W3 R4 W5 => R1 R4' $file >/dev/null \
+       && grep '^R1 W2 W3 W4 R5 => R1 R5' $file >/dev/null \
+    ; then
+      echo "    If at least one of the enqueued lock attempts is for reading, the"
+      echo "    first one of them is granted."
+    else
+      if    grep '^R1 W2 R3 => R1 R3' $file >/dev/null \
+         && grep '^R1 W2 R3 R4 => R1 R4' $file >/dev/null \
+         && grep '^R1 W2 R3 W4 => R1 R3' $file >/dev/null \
+         && grep '^R1 W2 W3 R4 => R1 R4' $file >/dev/null \
+         && grep '^R1 W2 R3 R4 R5 => R1 R5' $file >/dev/null \
+         && grep '^R1 W2 R3 R4 W5 => R1 R4' $file >/dev/null \
+         && grep '^R1 W2 R3 W4 R5 => R1 R5' $file >/dev/null \
+         && grep '^R1 W2 R3 W4 W5 => R1 R3' $file >/dev/null \
+         && grep '^R1 W2 W3 R4 R5 => R1 R5' $file >/dev/null \
+         && grep '^R1 W2 W3 R4 W5 => R1 R4' $file >/dev/null \
+         && grep '^R1 W2 W3 W4 R5 => R1 R5' $file >/dev/null \
+      ; then
+        echo "    If at least one of the enqueued lock attempts is for reading, the"
+        echo "    latest (LIFO!) one of them is granted."
+      else
+        echo "    If at least one of the enqueued lock attempts is for reading, one"
+        echo "    of them is granted."
+        deterministic=false
+      fi
+    fi
+    if    grep '^R1 W2 W3 => R1 W2' $file >/dev/null \
+       && grep '^R1 W2 W3 W4 => R1 W2' $file >/dev/null \
+       && grep '^R1 W2 W3 W4 W5 => R1 W2' $file >/dev/null \
+    ; then
+      echo "    Otherwise, the first of the waiting write attempts is granted."
+    else
+      if    grep '^R1 W2 W3 => R1 W3' $file >/dev/null \
+         && grep '^R1 W2 W3 W4 => R1 W4' $file >/dev/null \
+         && grep '^R1 W2 W3 W4 W5 => R1 W5' $file >/dev/null \
+      ; then
+        echo "    Otherwise, the latest (LIFO!) waiting write attempt is granted."
+      else
+        echo "    Otherwise ???"
+        deterministic=false
+      fi
+    fi
+  else
+    if    grep '^R1 W2 R3 => R1 W' $file >/dev/null \
+       && grep '^R1 W2 W3 => R1 W' $file >/dev/null \
+       && grep '^R1 W2 R3 R4 => R1 W' $file >/dev/null \
+       && grep '^R1 W2 R3 W4 => R1 W' $file >/dev/null \
+       && grep '^R1 W2 W3 R4 => R1 W' $file >/dev/null \
+       && grep '^R1 W2 W3 W4 => R1 W' $file >/dev/null \
+       && grep '^R1 W2 R3 R4 R5 => R1 W' $file >/dev/null \
+       && grep '^R1 W2 R3 R4 W5 => R1 W' $file >/dev/null \
+       && grep '^R1 W2 R3 W4 R5 => R1 W' $file >/dev/null \
+       && grep '^R1 W2 R3 W4 W5 => R1 W' $file >/dev/null \
+       && grep '^R1 W2 W3 R4 R5 => R1 W' $file >/dev/null \
+       && grep '^R1 W2 W3 R4 W5 => R1 W' $file >/dev/null \
+       && grep '^R1 W2 W3 W4 R5 => R1 W' $file >/dev/null \
+       && grep '^R1 W2 W3 W4 W5 => R1 W' $file >/dev/null \
+    ; then
+      prefers_writers_1=true
+      if    grep '^R1 W2 R3 => R1 W2' $file >/dev/null \
+         && grep '^R1 W2 W3 => R1 W2' $file >/dev/null \
+         && grep '^R1 W2 R3 R4 => R1 W2' $file >/dev/null \
+         && grep '^R1 W2 R3 W4 => R1 W2' $file >/dev/null \
+         && grep '^R1 W2 W3 R4 => R1 W2' $file >/dev/null \
+         && grep '^R1 W2 W3 W4 => R1 W2' $file >/dev/null \
+         && grep '^R1 W2 R3 R4 R5 => R1 W2' $file >/dev/null \
+         && grep '^R1 W2 R3 R4 W5 => R1 W2' $file >/dev/null \
+         && grep '^R1 W2 R3 W4 R5 => R1 W2' $file >/dev/null \
+         && grep '^R1 W2 R3 W4 W5 => R1 W2' $file >/dev/null \
+         && grep '^R1 W2 W3 R4 R5 => R1 W2' $file >/dev/null \
+         && grep '^R1 W2 W3 R4 W5 => R1 W2' $file >/dev/null \
+         && grep '^R1 W2 W3 W4 R5 => R1 W2' $file >/dev/null \
+         && grep '^R1 W2 W3 W4 W5 => R1 W2' $file >/dev/null \
+      ; then
+        echo "    If at least one of the enqueued lock attempts is for writing, the"
+        echo "    first one of them is granted."
+      else
+        if    grep '^R1 W2 R3 => R1 W2' $file >/dev/null \
+           && grep '^R1 W2 W3 => R1 W3' $file >/dev/null \
+           && grep '^R1 W2 R3 R4 => R1 W2' $file >/dev/null \
+           && grep '^R1 W2 R3 W4 => R1 W4' $file >/dev/null \
+           && grep '^R1 W2 W3 R4 => R1 W3' $file >/dev/null \
+           && grep '^R1 W2 W3 W4 => R1 W4' $file >/dev/null \
+           && grep '^R1 W2 R3 R4 R5 => R1 W2' $file >/dev/null \
+           && grep '^R1 W2 R3 R4 W5 => R1 W5' $file >/dev/null \
+           && grep '^R1 W2 R3 W4 R5 => R1 W4' $file >/dev/null \
+           && grep '^R1 W2 R3 W4 W5 => R1 W5' $file >/dev/null \
+           && grep '^R1 W2 W3 R4 R5 => R1 W3' $file >/dev/null \
+           && grep '^R1 W2 W3 R4 W5 => R1 W5' $file >/dev/null \
+           && grep '^R1 W2 W3 W4 R5 => R1 W4' $file >/dev/null \
+           && grep '^R1 W2 W3 W4 W5 => R1 W5' $file >/dev/null \
+        ; then
+          echo "    If at least one of the enqueued lock attempts is for writing, the"
+          echo "    latest (LIFO!) one of them is granted."
+        else
+          echo "    If at least one of the enqueued lock attempts is for writing, one"
+          echo "    of them is granted."
+          deterministic=false
+        fi
+      fi
+    else
+      echo "    ???"
+      deterministic=false
+    fi
+  fi
+fi
+
+echo "  When releasing a writer lock:"
+
+# These are the lines that matter:
+# W1 R2 R3 => W1 ...
+# W1 R2 W3 => W1 ...
+# W1 W2 R3 => W1 ...
+# W1 W2 W3 => W1 ...
+# W1 R2 R3 R4 => W1 ...
+# W1 R2 R3 W4 => W1 ...
+# W1 R2 W3 R4 => W1 ...
+# W1 R2 W3 W4 => W1 ...
+# W1 W2 R3 R4 => W1 ...
+# W1 W2 R3 W4 => W1 ...
+# W1 W2 W3 R4 => W1 ...
+# W1 W2 W3 W4 => W1 ...
+# W1 R2 R3 R4 R5 => W1 ...
+# W1 R2 R3 R4 W5 => W1 ...
+# W1 R2 R3 W4 R5 => W1 ...
+# W1 R2 R3 W4 W5 => W1 ...
+# W1 R2 W3 R4 R5 => W1 ...
+# W1 R2 W3 R4 W5 => W1 ...
+# W1 R2 W3 W4 R5 => W1 ...
+# W1 R2 W3 W4 W5 => W1 ...
+# W1 W2 R3 R4 R5 => W1 ...
+# W1 W2 R3 R4 W5 => W1 ...
+# W1 W2 R3 W4 R5 => W1 ...
+# W1 W2 R3 W4 W5 => W1 ...
+# W1 W2 W3 R4 R5 => W1 ...
+# W1 W2 W3 R4 W5 => W1 ...
+# W1 W2 W3 W4 R5 => W1 ...
+# W1 W2 W3 W4 W5 => W1 ...
+
+prefers_readers_2=false
+prefers_writers_2=false
+if    grep '^W1 R2 R3 => W1 R' $file >/dev/null \
+   && grep '^W1 R2 W3 => W1 R' $file >/dev/null \
+   && grep '^W1 W2 R3 => W1 W' $file >/dev/null \
+   && grep '^W1 W2 W3 => W1 W' $file >/dev/null \
+   && grep '^W1 R2 R3 R4 => W1 R' $file >/dev/null \
+   && grep '^W1 R2 R3 W4 => W1 R' $file >/dev/null \
+   && grep '^W1 R2 W3 R4 => W1 R' $file >/dev/null \
+   && grep '^W1 R2 W3 W4 => W1 R' $file >/dev/null \
+   && grep '^W1 W2 R3 R4 => W1 W' $file >/dev/null \
+   && grep '^W1 W2 R3 W4 => W1 W' $file >/dev/null \
+   && grep '^W1 W2 W3 R4 => W1 W' $file >/dev/null \
+   && grep '^W1 W2 W3 W4 => W1 W' $file >/dev/null \
+   && grep '^W1 R2 R3 R4 R5 => W1 R' $file >/dev/null \
+   && grep '^W1 R2 R3 R4 W5 => W1 R' $file >/dev/null \
+   && grep '^W1 R2 R3 W4 R5 => W1 R' $file >/dev/null \
+   && grep '^W1 R2 R3 W4 W5 => W1 R' $file >/dev/null \
+   && grep '^W1 R2 W3 R4 R5 => W1 R' $file >/dev/null \
+   && grep '^W1 R2 W3 R4 W5 => W1 R' $file >/dev/null \
+   && grep '^W1 R2 W3 W4 R5 => W1 R' $file >/dev/null \
+   && grep '^W1 R2 W3 W4 W5 => W1 R' $file >/dev/null \
+   && grep '^W1 W2 R3 R4 R5 => W1 W' $file >/dev/null \
+   && grep '^W1 W2 R3 R4 W5 => W1 W' $file >/dev/null \
+   && grep '^W1 W2 R3 W4 R5 => W1 W' $file >/dev/null \
+   && grep '^W1 W2 R3 W4 W5 => W1 W' $file >/dev/null \
+   && grep '^W1 W2 W3 R4 R5 => W1 W' $file >/dev/null \
+   && grep '^W1 W2 W3 R4 W5 => W1 W' $file >/dev/null \
+   && grep '^W1 W2 W3 W4 R5 => W1 W' $file >/dev/null \
+   && grep '^W1 W2 W3 W4 W5 => W1 W' $file >/dev/null \
+; then
+  if    grep '^W1 R2 R3 => W1 R' $file >/dev/null \
+     && grep '^W1 R2 W3 => W1 R' $file >/dev/null \
+     && grep '^W1 W2 R3 => W1 W2' $file >/dev/null \
+     && grep '^W1 W2 W3 => W1 W2' $file >/dev/null \
+     && grep '^W1 R2 R3 R4 => W1 R' $file >/dev/null \
+     && grep '^W1 R2 R3 W4 => W1 R' $file >/dev/null \
+     && grep '^W1 R2 W3 R4 => W1 R' $file >/dev/null \
+     && grep '^W1 R2 W3 W4 => W1 R' $file >/dev/null \
+     && grep '^W1 W2 R3 R4 => W1 W2' $file >/dev/null \
+     && grep '^W1 W2 R3 W4 => W1 W2' $file >/dev/null \
+     && grep '^W1 W2 W3 R4 => W1 W2' $file >/dev/null \
+     && grep '^W1 W2 W3 W4 => W1 W2' $file >/dev/null \
+     && grep '^W1 R2 R3 R4 R5 => W1 R' $file >/dev/null \
+     && grep '^W1 R2 R3 R4 W5 => W1 R' $file >/dev/null \
+     && grep '^W1 R2 R3 W4 R5 => W1 R' $file >/dev/null \
+     && grep '^W1 R2 R3 W4 W5 => W1 R' $file >/dev/null \
+     && grep '^W1 R2 W3 R4 R5 => W1 R' $file >/dev/null \
+     && grep '^W1 R2 W3 R4 W5 => W1 R' $file >/dev/null \
+     && grep '^W1 R2 W3 W4 R5 => W1 R' $file >/dev/null \
+     && grep '^W1 R2 W3 W4 W5 => W1 R' $file >/dev/null \
+     && grep '^W1 W2 R3 R4 R5 => W1 W2' $file >/dev/null \
+     && grep '^W1 W2 R3 R4 W5 => W1 W2' $file >/dev/null \
+     && grep '^W1 W2 R3 W4 R5 => W1 W2' $file >/dev/null \
+     && grep '^W1 W2 R3 W4 W5 => W1 W2' $file >/dev/null \
+     && grep '^W1 W2 W3 R4 R5 => W1 W2' $file >/dev/null \
+     && grep '^W1 W2 W3 R4 W5 => W1 W2' $file >/dev/null \
+     && grep '^W1 W2 W3 W4 R5 => W1 W2' $file >/dev/null \
+     && grep '^W1 W2 W3 W4 W5 => W1 W2' $file >/dev/null \
+  ; then
+    if    grep '^W1 R2 R3 => W1 R2' $file >/dev/null \
+       && grep '^W1 R2 W3 => W1 R2' $file >/dev/null \
+       && grep '^W1 W2 R3 => W1 W2' $file >/dev/null \
+       && grep '^W1 W2 W3 => W1 W2' $file >/dev/null \
+       && grep '^W1 R2 R3 R4 => W1 R2' $file >/dev/null \
+       && grep '^W1 R2 R3 W4 => W1 R2' $file >/dev/null \
+       && grep '^W1 R2 W3 R4 => W1 R2' $file >/dev/null \
+       && grep '^W1 R2 W3 W4 => W1 R2' $file >/dev/null \
+       && grep '^W1 W2 R3 R4 => W1 W2' $file >/dev/null \
+       && grep '^W1 W2 R3 W4 => W1 W2' $file >/dev/null \
+       && grep '^W1 W2 W3 R4 => W1 W2' $file >/dev/null \
+       && grep '^W1 W2 W3 W4 => W1 W2' $file >/dev/null \
+       && grep '^W1 R2 R3 R4 R5 => W1 R2' $file >/dev/null \
+       && grep '^W1 R2 R3 R4 W5 => W1 R2' $file >/dev/null \
+       && grep '^W1 R2 R3 W4 R5 => W1 R2' $file >/dev/null \
+       && grep '^W1 R2 R3 W4 W5 => W1 R2' $file >/dev/null \
+       && grep '^W1 R2 W3 R4 R5 => W1 R2' $file >/dev/null \
+       && grep '^W1 R2 W3 R4 W5 => W1 R2' $file >/dev/null \
+       && grep '^W1 R2 W3 W4 R5 => W1 R2' $file >/dev/null \
+       && grep '^W1 R2 W3 W4 W5 => W1 R2' $file >/dev/null \
+       && grep '^W1 W2 R3 R4 R5 => W1 W2' $file >/dev/null \
+       && grep '^W1 W2 R3 R4 W5 => W1 W2' $file >/dev/null \
+       && grep '^W1 W2 R3 W4 R5 => W1 W2' $file >/dev/null \
+       && grep '^W1 W2 R3 W4 W5 => W1 W2' $file >/dev/null \
+       && grep '^W1 W2 W3 R4 R5 => W1 W2' $file >/dev/null \
+       && grep '^W1 W2 W3 R4 W5 => W1 W2' $file >/dev/null \
+       && grep '^W1 W2 W3 W4 R5 => W1 W2' $file >/dev/null \
+       && grep '^W1 W2 W3 W4 W5 => W1 W2' $file >/dev/null \
+    ; then
+      echo "    The first of the enqueued lock attempts is granted."
+    else
+      echo "    If at least one of the enqueued lock attempts is for writing, the"
+      echo "    first of them is granted."
+      echo "    Otherwise, one of the waiting read attempts is granted."
+      deterministic=false
+    fi
+  else
+    echo "    If at least one of the enqueued lock attempts is for writing, one of"
+    echo "    the waiting write attempts is granted."
+    echo "    Otherwise, one of the waiting read attempts is granted."
+    deterministic=false
+  fi
+else
+  if    grep '^W1 R2 R3 => W1 R' $file >/dev/null \
+     && grep '^W1 R2 W3 => W1 R' $file >/dev/null \
+     && grep '^W1 W2 R3 => W1 R' $file >/dev/null \
+     && grep '^W1 R2 R3 R4 => W1 R' $file >/dev/null \
+     && grep '^W1 R2 R3 W4 => W1 R' $file >/dev/null \
+     && grep '^W1 R2 W3 R4 => W1 R' $file >/dev/null \
+     && grep '^W1 R2 W3 W4 => W1 R' $file >/dev/null \
+     && grep '^W1 W2 R3 R4 => W1 R' $file >/dev/null \
+     && grep '^W1 W2 R3 W4 => W1 R' $file >/dev/null \
+     && grep '^W1 W2 W3 R4 => W1 R' $file >/dev/null \
+     && grep '^W1 R2 R3 R4 R5 => W1 R' $file >/dev/null \
+     && grep '^W1 R2 R3 R4 W5 => W1 R' $file >/dev/null \
+     && grep '^W1 R2 R3 W4 R5 => W1 R' $file >/dev/null \
+     && grep '^W1 R2 R3 W4 W5 => W1 R' $file >/dev/null \
+     && grep '^W1 R2 W3 R4 R5 => W1 R' $file >/dev/null \
+     && grep '^W1 R2 W3 R4 W5 => W1 R' $file >/dev/null \
+     && grep '^W1 R2 W3 W4 R5 => W1 R' $file >/dev/null \
+     && grep '^W1 R2 W3 W4 W5 => W1 R' $file >/dev/null \
+     && grep '^W1 W2 R3 R4 R5 => W1 R' $file >/dev/null \
+     && grep '^W1 W2 R3 R4 W5 => W1 R' $file >/dev/null \
+     && grep '^W1 W2 R3 W4 R5 => W1 R' $file >/dev/null \
+     && grep '^W1 W2 R3 W4 W5 => W1 R' $file >/dev/null \
+     && grep '^W1 W2 W3 R4 R5 => W1 R' $file >/dev/null \
+     && grep '^W1 W2 W3 R4 W5 => W1 R' $file >/dev/null \
+     && grep '^W1 W2 W3 W4 R5 => W1 R' $file >/dev/null \
+  ; then
+    prefers_readers_2=true
+    if    grep '^W1 R2 R3 => W1 R2' $file >/dev/null \
+       && grep '^W1 R2 W3 => W1 R2' $file >/dev/null \
+       && grep '^W1 W2 R3 => W1 R3' $file >/dev/null \
+       && grep '^W1 R2 R3 R4 => W1 R2' $file >/dev/null \
+       && grep '^W1 R2 R3 W4 => W1 R2' $file >/dev/null \
+       && grep '^W1 R2 W3 R4 => W1 R2' $file >/dev/null \
+       && grep '^W1 R2 W3 W4 => W1 R2' $file >/dev/null \
+       && grep '^W1 W2 R3 R4 => W1 R3' $file >/dev/null \
+       && grep '^W1 W2 R3 W4 => W1 R3' $file >/dev/null \
+       && grep '^W1 W2 W3 R4 => W1 R4' $file >/dev/null \
+       && grep '^W1 R2 R3 R4 R5 => W1 R2' $file >/dev/null \
+       && grep '^W1 R2 R3 R4 W5 => W1 R2' $file >/dev/null \
+       && grep '^W1 R2 R3 W4 R5 => W1 R2' $file >/dev/null \
+       && grep '^W1 R2 R3 W4 W5 => W1 R2' $file >/dev/null \
+       && grep '^W1 R2 W3 R4 R5 => W1 R2' $file >/dev/null \
+       && grep '^W1 R2 W3 R4 W5 => W1 R2' $file >/dev/null \
+       && grep '^W1 R2 W3 W4 R5 => W1 R2' $file >/dev/null \
+       && grep '^W1 R2 W3 W4 W5 => W1 R2' $file >/dev/null \
+       && grep '^W1 W2 R3 R4 R5 => W1 R3' $file >/dev/null \
+       && grep '^W1 W2 R3 R4 W5 => W1 R3' $file >/dev/null \
+       && grep '^W1 W2 R3 W4 R5 => W1 R3' $file >/dev/null \
+       && grep '^W1 W2 R3 W4 W5 => W1 R3' $file >/dev/null \
+       && grep '^W1 W2 W3 R4 R5 => W1 R4' $file >/dev/null \
+       && grep '^W1 W2 W3 R4 W5 => W1 R4' $file >/dev/null \
+       && grep '^W1 W2 W3 W4 R5 => W1 R5' $file >/dev/null \
+    ; then
+      echo "    If at least one of the enqueued lock attempts is for reading, the"
+      echo "    first of them is granted."
+    else
+      if    grep '^W1 R2 R3 => W1 R3' $file >/dev/null \
+         && grep '^W1 R2 W3 => W1 R2' $file >/dev/null \
+         && grep '^W1 W2 R3 => W1 R3' $file >/dev/null \
+         && grep '^W1 R2 R3 R4 => W1 R4' $file >/dev/null \
+         && grep '^W1 R2 R3 W4 => W1 R3' $file >/dev/null \
+         && grep '^W1 R2 W3 R4 => W1 R4' $file >/dev/null \
+         && grep '^W1 R2 W3 W4 => W1 R2' $file >/dev/null \
+         && grep '^W1 W2 R3 R4 => W1 R4' $file >/dev/null \
+         && grep '^W1 W2 R3 W4 => W1 R3' $file >/dev/null \
+         && grep '^W1 W2 W3 R4 => W1 R4' $file >/dev/null \
+         && grep '^W1 R2 R3 R4 R5 => W1 R5' $file >/dev/null \
+         && grep '^W1 R2 R3 R4 W5 => W1 R4' $file >/dev/null \
+         && grep '^W1 R2 R3 W4 R5 => W1 R5' $file >/dev/null \
+         && grep '^W1 R2 R3 W4 W5 => W1 R3' $file >/dev/null \
+         && grep '^W1 R2 W3 R4 R5 => W1 R5' $file >/dev/null \
+         && grep '^W1 R2 W3 R4 W5 => W1 R4' $file >/dev/null \
+         && grep '^W1 R2 W3 W4 R5 => W1 R5' $file >/dev/null \
+         && grep '^W1 R2 W3 W4 W5 => W1 R2' $file >/dev/null \
+         && grep '^W1 W2 R3 R4 R5 => W1 R5' $file >/dev/null \
+         && grep '^W1 W2 R3 R4 W5 => W1 R4' $file >/dev/null \
+         && grep '^W1 W2 R3 W4 R5 => W1 R5' $file >/dev/null \
+         && grep '^W1 W2 R3 W4 W5 => W1 R3' $file >/dev/null \
+         && grep '^W1 W2 W3 R4 R5 => W1 R5' $file >/dev/null \
+         && grep '^W1 W2 W3 R4 W5 => W1 R4' $file >/dev/null \
+         && grep '^W1 W2 W3 W4 R5 => W1 R5' $file >/dev/null \
+      ; then
+        echo "    If at least one of the enqueued lock attempts is for reading, the"
+        echo "    latest (LIFO!) one of them is granted."
+      else
+        echo "    If at least one of the enqueued lock attempts is for reading, one of"
+        echo "    them is granted."
+        deterministic=false
+      fi
+    fi
+    if    grep '^W1 W2 W3 => W1 W2 W3' $file >/dev/null \
+       && grep '^W1 W2 W3 W4 => W1 W2 W3 W4' $file >/dev/null \
+       && grep '^W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5' $file >/dev/null \
+    ; then
+      echo "    Otherwise, the first of the waiting write attempts is granted."
+    else
+      if    grep '^W1 W2 W3 => W1 W3' $file >/dev/null \
+         && grep '^W1 W2 W3 W4 => W1 W4' $file >/dev/null \
+         && grep '^W1 W2 W3 W4 W5 => W1 W5' $file >/dev/null \
+      ; then
+        echo "    Otherwise, the latest (LIFO!) of the waiting write attempts is granted."
+      else
+        echo "    Otherwise ???"
+        deterministic=false
+      fi
+    fi
+  else
+    if    grep '^W1 R2 W3 => W1 W' $file >/dev/null \
+       && grep '^W1 W2 R3 => W1 W' $file >/dev/null \
+       && grep '^W1 W2 W3 => W1 W' $file >/dev/null \
+       && grep '^W1 R2 R3 W4 => W1 W' $file >/dev/null \
+       && grep '^W1 R2 W3 R4 => W1 W' $file >/dev/null \
+       && grep '^W1 R2 W3 W4 => W1 W' $file >/dev/null \
+       && grep '^W1 W2 R3 R4 => W1 W' $file >/dev/null \
+       && grep '^W1 W2 R3 W4 => W1 W' $file >/dev/null \
+       && grep '^W1 W2 W3 R4 => W1 W' $file >/dev/null \
+       && grep '^W1 W2 W3 W4 => W1 W' $file >/dev/null \
+       && grep '^W1 R2 R3 R4 W5 => W1 W' $file >/dev/null \
+       && grep '^W1 R2 R3 W4 R5 => W1 W' $file >/dev/null \
+       && grep '^W1 R2 R3 W4 W5 => W1 W' $file >/dev/null \
+       && grep '^W1 R2 W3 R4 R5 => W1 W' $file >/dev/null \
+       && grep '^W1 R2 W3 R4 W5 => W1 W' $file >/dev/null \
+       && grep '^W1 R2 W3 W4 R5 => W1 W' $file >/dev/null \
+       && grep '^W1 R2 W3 W4 W5 => W1 W' $file >/dev/null \
+       && grep '^W1 W2 R3 R4 R5 => W1 W' $file >/dev/null \
+       && grep '^W1 W2 R3 R4 W5 => W1 W' $file >/dev/null \
+       && grep '^W1 W2 R3 W4 R5 => W1 W' $file >/dev/null \
+       && grep '^W1 W2 R3 W4 W5 => W1 W' $file >/dev/null \
+       && grep '^W1 W2 W3 R4 R5 => W1 W' $file >/dev/null \
+       && grep '^W1 W2 W3 R4 W5 => W1 W' $file >/dev/null \
+       && grep '^W1 W2 W3 W4 R5 => W1 W' $file >/dev/null \
+       && grep '^W1 W2 W3 W4 W5 => W1 W' $file >/dev/null \
+    ; then
+      prefers_writers_2=true
+      if    grep '^W1 R2 W3 => W1 W3' $file >/dev/null \
+         && grep '^W1 W2 R3 => W1 W2' $file >/dev/null \
+         && grep '^W1 W2 W3 => W1 W2' $file >/dev/null \
+         && grep '^W1 R2 R3 W4 => W1 W4' $file >/dev/null \
+         && grep '^W1 R2 W3 R4 => W1 W3' $file >/dev/null \
+         && grep '^W1 R2 W3 W4 => W1 W3' $file >/dev/null \
+         && grep '^W1 W2 R3 R4 => W1 W2' $file >/dev/null \
+         && grep '^W1 W2 R3 W4 => W1 W2' $file >/dev/null \
+         && grep '^W1 W2 W3 R4 => W1 W2' $file >/dev/null \
+         && grep '^W1 W2 W3 W4 => W1 W2' $file >/dev/null \
+         && grep '^W1 R2 R3 R4 W5 => W1 W5' $file >/dev/null \
+         && grep '^W1 R2 R3 W4 R5 => W1 W4' $file >/dev/null \
+         && grep '^W1 R2 R3 W4 W5 => W1 W4' $file >/dev/null \
+         && grep '^W1 R2 W3 R4 R5 => W1 W3' $file >/dev/null \
+         && grep '^W1 R2 W3 R4 W5 => W1 W3' $file >/dev/null \
+         && grep '^W1 R2 W3 W4 R5 => W1 W3' $file >/dev/null \
+         && grep '^W1 R2 W3 W4 W5 => W1 W3' $file >/dev/null \
+         && grep '^W1 W2 R3 R4 R5 => W1 W2' $file >/dev/null \
+         && grep '^W1 W2 R3 R4 W5 => W1 W2' $file >/dev/null \
+         && grep '^W1 W2 R3 W4 R5 => W1 W2' $file >/dev/null \
+         && grep '^W1 W2 R3 W4 W5 => W1 W2' $file >/dev/null \
+         && grep '^W1 W2 W3 R4 R5 => W1 W2' $file >/dev/null \
+         && grep '^W1 W2 W3 R4 W5 => W1 W2' $file >/dev/null \
+         && grep '^W1 W2 W3 W4 R5 => W1 W2' $file >/dev/null \
+         && grep '^W1 W2 W3 W4 W5 => W1 W2' $file >/dev/null \
+      ; then
+        echo "    If at least one of the enqueued lock attempts is for writing, the"
+        echo "    first one of them is granted."
+      else
+        if    grep '^W1 R2 W3 => W1 W3' $file >/dev/null \
+           && grep '^W1 W2 R3 => W1 W2' $file >/dev/null \
+           && grep '^W1 W2 W3 => W1 W3' $file >/dev/null \
+           && grep '^W1 R2 R3 W4 => W1 W4' $file >/dev/null \
+           && grep '^W1 R2 W3 R4 => W1 W3' $file >/dev/null \
+           && grep '^W1 R2 W3 W4 => W1 W4' $file >/dev/null \
+           && grep '^W1 W2 R3 R4 => W1 W2' $file >/dev/null \
+           && grep '^W1 W2 R3 W4 => W1 W4' $file >/dev/null \
+           && grep '^W1 W2 W3 R4 => W1 W3' $file >/dev/null \
+           && grep '^W1 W2 W3 W4 => W1 W4' $file >/dev/null \
+           && grep '^W1 R2 R3 R4 W5 => W1 W5' $file >/dev/null \
+           && grep '^W1 R2 R3 W4 R5 => W1 W4' $file >/dev/null \
+           && grep '^W1 R2 R3 W4 W5 => W1 W5' $file >/dev/null \
+           && grep '^W1 R2 W3 R4 R5 => W1 W3' $file >/dev/null \
+           && grep '^W1 R2 W3 R4 W5 => W1 W5' $file >/dev/null \
+           && grep '^W1 R2 W3 W4 R5 => W1 W4' $file >/dev/null \
+           && grep '^W1 R2 W3 W4 W5 => W1 W5' $file >/dev/null \
+           && grep '^W1 W2 R3 R4 R5 => W1 W2' $file >/dev/null \
+           && grep '^W1 W2 R3 R4 W5 => W1 W5' $file >/dev/null \
+           && grep '^W1 W2 R3 W4 R5 => W1 W4' $file >/dev/null \
+           && grep '^W1 W2 R3 W4 W5 => W1 W5' $file >/dev/null \
+           && grep '^W1 W2 W3 R4 R5 => W1 W3' $file >/dev/null \
+           && grep '^W1 W2 W3 R4 W5 => W1 W5' $file >/dev/null \
+           && grep '^W1 W2 W3 W4 R5 => W1 W4' $file >/dev/null \
+           && grep '^W1 W2 W3 W4 W5 => W1 W5' $file >/dev/null \
+        ; then
+          echo "    If at least one of the enqueued lock attempts is for writing, the"
+          echo "    latest (LIFO!) one of them is granted."
+        else
+          echo "    If at least one of the enqueued lock attempts is for writing, one of"
+          echo "    the waiting write attempts is granted (not necessarily the first one)."
+          deterministic=false
+        fi
+      fi
+      if    grep '^W1 R2 R3 => W1 R' $file >/dev/null \
+         && grep '^W1 R2 R3 R4 => W1 R' $file >/dev/null \
+         && grep '^W1 R2 R3 R4 R5 => W1 R' $file >/dev/null \
+      ; then
+        if    grep '^W1 R2 R3 => W1 R2 R3' $file >/dev/null \
+           && grep '^W1 R2 R3 R4 => W1 R2 R3 R4' $file >/dev/null \
+           && grep '^W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5' $file >/dev/null \
+        ; then
+          echo "    Otherwise, the first of the waiting read attempts is granted."
+        else
+          if    grep '^W1 R2 R3 => W1 R3' $file >/dev/null \
+             && grep '^W1 R2 R3 R4 => W1 R4' $file >/dev/null \
+             && grep '^W1 R2 R3 R4 R5 => W1 R5' $file >/dev/null \
+          ; then
+            echo "    Otherwise, the latest (LIFO!) of the waiting read attempts is granted."
+          else
+            echo "    Otherwise, one of the waiting read attempts is granted."
+            deterministic=false
+          fi
+        fi
+      else
+        echo "    Otherwise, ???"
+        deterministic=false
+      fi
+    else
+      echo "    ???"
+      deterministic=false
+    fi
+  fi
+fi
+
+if $prefers_readers_1; then
+  if $prefers_readers_2; then
+    echo "  This implementation always prefers readers."
+  else
+    echo "  This implementation does not globally prefer readers, only when releasing"
+    echo "  a reader lock."
+  fi
+else
+  if $prefers_readers_2; then
+    echo "  This implementation does not globally prefer readers, only when releasing"
+    echo "  a writer lock."
+  else
+    echo "  This implementation does not prefer readers."
+  fi
+fi
+
+if $prefers_writers_1; then
+  if $prefers_writers_2; then
+    echo "  This implementation always prefers writers."
+  else
+    echo "  This implementation does not globally prefer writers, only when releasing"
+    echo "  a reader lock."
+  fi
+else
+  if $prefers_writers_2; then
+    echo "  This implementation does not globally prefer writers, only when releasing"
+    echo "  a writer lock."
+  else
+    echo "  This implementation does not prefer writers."
+  fi
+fi
+
+if $deterministic; then
+  echo "  This implementation is deterministic."
+fi
+
+exit 0