Описание тега thread-local-storage
Thread-local storage (TLS) is a computer programming method that uses static or global memory local to a thread
3
ответа
Потоковое локальное хранилище в режиме ядра?
Есть ли в Windows эквивалент потокового хранилища (TLS) для драйверов режима ядра (точнее, Win32)? Чего я пытаюсь добиться: В конечном счете, в рамках процедуры диспетчеризации моего драйвера он может вызывать многие другие функции (может быть глубо…
20 мар '12 в 23:38
1
ответ
Порядок инициализации локальных переменных потока
Цитата из N4713: Динамическая инициализация нелокальных переменных V и W со статической продолжительностью хранения упорядочена следующим образом: Если V и W имеют упорядоченную инициализацию и V определяется перед W в пределах одной единицы трансля…
12 авг '18 в 10:29
4
ответа
Локальное хранилище потоков C++ clang-503.0.40 (Mac OSX)
После того как я объявил переменную таким образом: #include <thread> namespace thread_space { thread_local int s; } //etc. я попытался скомпилировать мой код, используя 'g++ -std= C++0x -pthread [sourcefile]'. Я получаю следующую ошибку: examp…
21 май '14 в 18:26
6
ответов
Почему локальное хранилище потоков так медленно?
Я работаю над пользовательским распределителем памяти стиля выпуска метки для языка программирования D, который работает путем выделения из локальных потоков. Кажется, что узкое место в локальном хранилище потока приводит к огромному (~50%) замедлен…
03 фев '09 в 05:28
1
ответ
Реализация локального хранилища потоков в Linux
__thread Foo foo; Как на самом деле разрешается "foo"? Заменяет ли компилятор каждый экземпляр "foo" на вызов функции? "Foo" хранится где-то относительно дна стека, и компилятор сохраняет это как "эй, для каждого потока, имеет это пространство около…
17 мар '10 в 03:16
2
ответа
Локальная переменная потока в классе Singleton
В одноэлементном классе у меня есть частная статическая переменная ThreadLocal. Будет ли эта переменная использоваться совместно с пользователями, имеющими доступ к этому одноэлементному классу, или не будет использоваться совместно?
19 авг '14 в 10:43
2
ответа
Личный список потока, но разделенный с методами
Мне нужно запустить несколько потоков, но каждый поток будет иметь свой список. Это означает, что списки не должны быть общими, но доступ к ним будет осуществляться разными способами. class foo() { //put the list definition here as a property? publi…
10 июн '15 в 21:42
1
ответ
Проблема с удалением данных thread_specific_ptr в конце потока
Я использую поток локального хранилища с boost. У меня есть глобальная переменная: boost::thread_specific_ptr<MyDataClass> p_timeline_ctx; и у меня есть следующий класс, который инкапсулирует объект boost::thread и содержит дополнительный объе…
08 апр '14 в 14:09
0
ответов
Windows: Кто вызывает TlsAlloc ДО загрузки моего приложения?
У меня есть приложение, которое использует большое количество (не спрашивайте!) Переменных локального хранилища потоков. Это работало без проблем в течение почти десятилетия... до недавнего сюрприза. У клиента есть ноутбук под управлением Windows7 (…
03 июл '12 в 00:01
2
ответа
Почему `std::exit` не вызывает деструкторы, как ожидалось?
#include <cstdlib> #include <thread> #include <chrono> #include <iostream> using namespace std; using namespace std::literals; struct A { int n_ = 0; A(int n) : n_(n) { cout << "A:" << n_ << endl; } ~A() { c…
28 мар '17 в 14:01
1
ответ
Инициализация локального указателя потока
Читая очень хороший пост в блоге Никласа Фрикхольма, на который я ссылаюсь ниже, я наткнулся на то, что не совсем могу обернуть голову. http://bitsquid.blogspot.nl/2012/01/sensible-error-handling-part-1.html Этот код смутил меня: __THREAD Array<c…
31 мар '13 в 12:58
1
ответ
Что является и не является автоматически локальным для потоков в Python Threading?
Мне трудно сосредоточиться на потоке Python, тем более что документация явно говорит вам о RTFS в некоторых моментах, вместо того, чтобы любезно включать соответствующую информацию. Я признаю, что не чувствую себя способным читать модуль потоков. Я …
15 мар '14 в 12:22
1
ответ
OpenMP и идентификатор локального хранилища потоков с помощью icc
Это простой тестовый код: #include <stdlib.h> __thread int a = 0; int main() { #pragma omp parallel default(none) { a = 1; } return 0; } gcc компилирует это без проблем с -fopenmp, но icc (ICC) 12.0.2 20110112 с -openmp жалуется с test.c(7): о…
14 ноя '13 в 14:57
1
ответ
_Thread_local спецификатор класса хранения в C?
Я прочитал заметку в книге C Как программировать 7-й о каком-то новом стандартном классе хранения C, названном _Thread_local: Новый стандарт C добавляет спецификатор класса хранения _Thread_local, что выходит за рамки этой книги. Я искал это в Googl…
12 янв '13 в 02:39
1
ответ
Поток данных TPL Локальные данные
Есть ли хороший способ передать локальные данные потока в ActionBlock, например, если вы укажете MaxDegreeOfParallelization в его DataFlowExecutionOptions равным> 1, то каждая задача, которая выполняет действие, будет иметь свои собственные локальны…
04 фев '13 в 18:50
1
ответ
C++ Thread Local Синглтон прерывистый сбой
Я попытался реализовать очень простой класс Local Local Singleton в C++ - это шаблонный класс, от которого наследуются другие классы. Проблема в том, что он почти всегда работает, но время от времени (скажем, 1 прогон в 15), он будет завершаться с о…
04 мар '15 в 10:55
2
ответа
Как работает gcc `__thread`?
Как __thread в gcc реализовано? Это просто обертка pthread_getspecific а также pthread_setspecific? С моей программой, использующей API posix для TLS, я немного разочарован тем, что 30% времени выполнения моей программы тратится на pthread_getspecif…
27 авг '15 в 09:07
6
ответов
Почему локальное хранилище потока не реализовано с отображениями таблицы страниц?
Я надеялся использовать C++11 thread_local ключевое слово для логического флага для потока, к которому будет обращаться очень часто. Однако большинство компиляторов, по-видимому, реализовали локальное хранилище потока с таблицей, которая отображает …
18 окт '14 в 08:50
0
ответов
Это правильный способ гарантировать инициализацию thread_local?
Рассмотрим приведенный ниже тестовый пример: #include <iostream> #include <thread> thread_local struct Bar { Bar() { std::cout << '*' << std::endl; } ~Bar() { std::cout << '~' << std::endl; } } bar; struct Foo { v…
07 фев '18 в 18:42
0
ответов
Всегда ли глобальные переменные инициализируются до каких-либо глобальных переменных thread_local?
struct A { A() : n(1) {} int n; }; struct B { B() : n(2) {} int n; }; thread_local A a; B b; int main() { return a.n; } a определяется раньше b, Мой вопрос: Гарантирует ли стандарт C++ B::B() называется раньшеA::A()называется?
15 фев '17 в 15:41