[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] ISO C 11 threads preparations

From: Bruno Haible
Subject: [PATCH] ISO C 11 threads preparations
Date: Thu, 20 Jun 2019 12:42:50 +0200
User-agent: KMail/5.1.3 (Linux/4.4.0-145-generic; KDE/5.18.0; x86_64; ; )

The first patch series are preparations:

01  lock tests: Avoid reference to undefined variable if !ENABLE_LOCKING.
02  cond tests: Simplify.
03  tls tests: Small improvements.

These fix minor nits I found while looking at the tests.

04  thread, lock, cond, tls: Recognize C11 multithreaded applications.

These gnulib modules have optimizations for single-threaded applications.
They recognizes a single-threaded application by the fact that libpthread
is not linked in (when pthread_create exists only in libpthread, not in
libc). But on FreeBSD, the ISO C 11 threads implementation is in
libstdthreads, not libpthread. Without this fix, the locks from the 'lock'
module would not work in programs that create their threads through
thrd_create instead of pthread_create.

05  pthread_mutex_timedlock: New module.

This is an emulation of pthread_mutex_timedlock on systems that have
<pthread.h> but lack this particular function.

06  cond: Make glthread_cond_timedwait more reliable on Windows.
07  lock, cond: Avoid possible counter wraparound on Windows.

Small reliability fixes.

08  windows-once: New module.
09  windows-mutex: New module.
10  windows-recmutex: New module.
11  windows-timedmutex: New module.
12  windows-timedrecmutex: New module.
13  windows-cond: New module.
14  windows-tls: New module.
15  windows-thread: New module.

These modules contain the native Windows implementation of the
primitives. Refactored from the thread, lock, cond, tls module,
to avoid code duplication.
- windows-once: refactored from 'lock',
- windows-mutex, windows-recmutex: likewise. Adds support for the
  trylock operations.
- windows-timedmutex, windows-timedrecmutex: These are new lock
  implementations that support waiting with a timeout, based on
  windows-mutex and windows-recmutex.
- windows-cond: refactored from 'cond'.
- windows-tls: refactored from 'tls'.
- windows-thread: refactored from 'thread'.

Attachment: 0001-lock-tests-Avoid-reference-to-undefined-variable-if-.patch
Description: Text Data

Attachment: 0002-cond-tests-Simplify.patch
Description: Text Data

Attachment: 0003-tls-tests-Small-improvements.patch
Description: Text Data

Attachment: 0004-thread-lock-cond-tls-Recognize-C11-multithreaded-app.patch
Description: Text Data

Attachment: 0005-pthread_mutex_timedlock-New-module.patch
Description: Text Data

Attachment: 0006-cond-Make-glthread_cond_timedwait-more-reliable-on-W.patch
Description: Text Data

Attachment: 0007-lock-cond-Avoid-possible-counter-wraparound-on-Windo.patch
Description: Text Data

Attachment: 0008-windows-once-New-module.patch
Description: Text Data

Attachment: 0009-windows-mutex-New-module.patch
Description: Text Data

Attachment: 0010-windows-recmutex-New-module.patch
Description: Text Data

Attachment: 0011-windows-timedmutex-New-module.patch
Description: Text Data

Attachment: 0012-windows-timedrecmutex-New-module.patch
Description: Text Data

Attachment: 0013-windows-cond-New-module.patch
Description: Text Data

Attachment: 0014-windows-tls-New-module.patch
Description: Text Data

Attachment: 0015-windows-thread-New-module.patch
Description: Text Data

reply via email to

[Prev in Thread] Current Thread [Next in Thread]