Browse Source

Only the read lock needs priority inversion

Signed-off-by: falkTX <falktx@falktx.com>
tags/22.02
falkTX 3 years ago
parent
commit
9cb3696feb
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
2 changed files with 9 additions and 9 deletions
  1. +3
    -3
      .github/workflows/build.yml
  2. +6
    -6
      include/mutex.hpp

+ 3
- 3
.github/workflows/build.yml View File

@@ -304,7 +304,7 @@ jobs:
run: |
sudo apt-get update -qq
sudo apt-get install -yqq acl bc curl cvs git mercurial rsync subversion wget bison bzip2 flex gawk gperf gzip help2man nano perl patch tar texinfo unzip automake binutils build-essential cpio libtool libncurses-dev pkg-config python libtool-bin liblo-dev qemu-user-static
sudo apt-get install -yqq pandoc texlive-latex-base
sudo apt-get install -yqq pandoc texlive-latex-recommended
- name: Bootstrap toolchain
if: steps.mpb-cache.outputs.cache-hit != 'true'
run: |
@@ -343,7 +343,7 @@ jobs:
run: |
sudo apt-get update -qq
sudo apt-get install -yqq acl bc curl cvs git mercurial rsync subversion wget bison bzip2 flex gawk gperf gzip help2man nano perl patch tar texinfo unzip automake binutils build-essential cpio libtool libncurses-dev pkg-config python libtool-bin liblo-dev qemu-user-static
sudo apt-get install -yqq pandoc texlive-latex-base
sudo apt-get install -yqq pandoc texlive-latex-recommended
- name: Bootstrap toolchain
if: steps.mpb-cache.outputs.cache-hit != 'true'
run: |
@@ -382,7 +382,7 @@ jobs:
run: |
sudo apt-get update -qq
sudo apt-get install -yqq acl bc curl cvs git mercurial rsync subversion wget bison bzip2 flex gawk gperf gzip help2man nano perl patch tar texinfo unzip automake binutils build-essential cpio libtool libncurses-dev pkg-config python libtool-bin liblo-dev qemu-user-static
sudo apt-get install -yqq pandoc texlive-latex-base
sudo apt-get install -yqq pandoc texlive-latex-recommended
- name: Bootstrap toolchain
if: steps.mpb-cache.outputs.cache-hit != 'true'
run: |


+ 6
- 6
include/mutex.hpp View File

@@ -29,18 +29,18 @@ struct SharedMutex {

SharedMutex() noexcept {
pthread_mutexattr_t attr;

pthread_mutexattr_init(&attr);
pthread_mutexattr_setprotocol(&attr, PTHREAD_PRIO_INHERIT);
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
pthread_mutex_init(&readLock, &attr);
pthread_mutexattr_destroy(&attr);

pthread_mutexattr_init(&attr);
pthread_mutexattr_setprotocol(&attr, PTHREAD_PRIO_INHERIT);
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_NORMAL);
pthread_mutex_init(&writeLock, &attr);
pthread_mutexattr_destroy(&attr);
pthread_mutexattr_t attr2;
pthread_mutexattr_init(&attr2);
pthread_mutexattr_setprotocol(&attr2, PTHREAD_PRIO_NONE);
pthread_mutexattr_settype(&attr2, PTHREAD_MUTEX_NORMAL);
pthread_mutex_init(&writeLock, &attr2);
pthread_mutexattr_destroy(&attr2);
}

~SharedMutex() noexcept {


Loading…
Cancel
Save