powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Shared_mutex уже релазиован в компиляторах?
11 сообщений из 11, страница 1 из 1
Shared_mutex уже релазиован в компиляторах?
    #39625523
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пытаюсь создать мютекс:
Код: plaintext
1.
2.
#include <shared_mutex>
extern std::shared_mutex SharedMutex;



Получаю такую ошибку:
автор‘shared_mutex’ in namespace ‘std’ does not name a type
extern std::shared_mutex SharedMutex;

В pro- файле добавил:
Код: plaintext
1.
2.
3.
CONFIG += c++11
CONFIG += c++14
CONFIG += c++17



Насколько я понял эта функциональность пока не реализована ни в GCC 7, ни в текущем компиляторе от Intel. Есть вот такая таблица: https://habrahabr.ru/post/245175/, но в ней ни слова про shared_mutex...

Есть подобная таблица, которая содержит более актуальные данные?
...
Рейтинг: 0 / 0
Shared_mutex уже релазиован в компиляторах?
    #39625525
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Самое смешное, что тут: https://gcc.gnu.org/projects/cxx-status.html тоже нет ни слова про shared_mutex...

Может я что- то недопонимаю?
...
Рейтинг: 0 / 0
Shared_mutex уже релазиован в компиляторах?
    #39625539
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQL, смотри boost::shared_mutex
...
Рейтинг: 0 / 0
Shared_mutex уже релазиован в компиляторах?
    #39625543
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Shared_mutex уже релазиован в компиляторах?
    #39625549
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivAlekseySQL,

http://en.cppreference.com/w/cpp/thread/shared_mutex

http://en.cppreference.com/w/cpp/compiler_support (найти на странице std::shared_mutex )

Спасибо за таблицу, но почему тогда GCC v7 дает ошибку, если он уже в v6 был реализован? Тут: https://stackoverflow.com/questions/36222912/is-c17-stdshared-mutex-not-available-yet есть мнение, что это был timed shared mutex , который только назывался shared mutex .
...
Рейтинг: 0 / 0
Shared_mutex уже релазиован в компиляторах?
    #39625553
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделайте свой shared_mutex на основе атомарного счетчика и обычного мьютекса.

А насчет std::shared_mutex. Он в стандарте начиная с С++17, а тут https://gcc.gnu.org/projects/cxx-status.html написано что его поддержка только экспериментальная.
...
Рейтинг: 0 / 0
Shared_mutex уже релазиован в компиляторах?
    #39625557
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати в некоторых случаях shared_mutex ведет себя хуже чем обычный, даже в условиях reader-writer.
Так что попробуйте оба варианта.
...
Рейтинг: 0 / 0
Shared_mutex уже релазиован в компиляторах?
    #39625561
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly MoskovskyСделайте свой shared_mutex на основе атомарного счетчика и обычного мьютекса.

А насчет std::shared_mutex. Он в стандарте начиная с С++17, а тут https://gcc.gnu.org/projects/cxx-status.html написано что его поддержка только экспериментальная.

В таких ситуациях можно словить неочевидные ошибки, поэтому я воспользовался разработкой от ребят из QT:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
QReadWriteLock ReadWriteMutex;

void writeData(const QByteArray &data)
  {
      QWriteLocker locker(&lock);
      ...
  }

  QByteArray readData()
  {
      QReadLocker locker(&lock);
      ...
      return data;
  }
...
Рейтинг: 0 / 0
Shared_mutex уже релазиован в компиляторах?
    #39625575
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLMasterZivAlekseySQL,

http://en.cppreference.com/w/cpp/thread/shared_mutex

http://en.cppreference.com/w/cpp/compiler_support (найти на странице std::shared_mutex )

Спасибо за таблицу, но почему тогда GCC v7 дает ошибку, если он уже в v6 был реализован? Тут: https://stackoverflow.com/questions/36222912/is-c17-stdshared-mutex-not-available-yet есть мнение, что это был timed shared mutex , который только назывался shared mutex .

Стандарт языка ты конечно же нужный поставил в параметрах компилятора?
...
Рейтинг: 0 / 0
Shared_mutex уже релазиован в компиляторах?
    #39625581
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
CONFIG += c++11
CONFIG += c++14
CONFIG += c++17



Надо ОДИН параметр добавлять, а не три.
Самый большой, который тебе нужен.
...
Рейтинг: 0 / 0
Shared_mutex уже релазиован в компиляторах?
    #39625681
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivНадо ОДИН параметр добавлять, а не три.
Самый большой, который тебе нужен.

Спасибо, МастерЗив :)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Shared_mutex уже релазиован в компиляторах?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]