5
5
#include " util/query_heap.hpp"
6
6
#include " util/typedefs.hpp"
7
7
8
- #include < boost/thread/tss.hpp>
9
-
10
8
namespace osrm ::engine
11
9
{
12
10
@@ -45,19 +43,19 @@ template <> struct SearchEngineData<routing_algorithms::ch::Algorithm>
45
43
ManyToManyHeapData,
46
44
util::UnorderedMapStorage<NodeID, int >>;
47
45
48
- using SearchEngineHeapPtr = boost::thread_specific_ptr <QueryHeap>;
46
+ using SearchEngineHeapPtr = std::unique_ptr <QueryHeap>;
49
47
50
- using ManyToManyHeapPtr = boost::thread_specific_ptr <ManyToManyQueryHeap>;
48
+ using ManyToManyHeapPtr = std::unique_ptr <ManyToManyQueryHeap>;
51
49
52
- static SearchEngineHeapPtr forward_heap_1;
53
- static SearchEngineHeapPtr reverse_heap_1;
54
- static SearchEngineHeapPtr forward_heap_2;
55
- static SearchEngineHeapPtr reverse_heap_2;
56
- static SearchEngineHeapPtr forward_heap_3;
57
- static SearchEngineHeapPtr reverse_heap_3;
58
- static ManyToManyHeapPtr many_to_many_heap;
59
- static SearchEngineHeapPtr map_matching_forward_heap_1;
60
- static SearchEngineHeapPtr map_matching_reverse_heap_1;
50
+ static thread_local SearchEngineHeapPtr forward_heap_1;
51
+ static thread_local SearchEngineHeapPtr reverse_heap_1;
52
+ static thread_local SearchEngineHeapPtr forward_heap_2;
53
+ static thread_local SearchEngineHeapPtr reverse_heap_2;
54
+ static thread_local SearchEngineHeapPtr forward_heap_3;
55
+ static thread_local SearchEngineHeapPtr reverse_heap_3;
56
+ static thread_local ManyToManyHeapPtr many_to_many_heap;
57
+ static thread_local SearchEngineHeapPtr map_matching_forward_heap_1;
58
+ static thread_local SearchEngineHeapPtr map_matching_reverse_heap_1;
61
59
62
60
void InitializeOrClearMapMatchingThreadLocalStorage (unsigned number_of_nodes);
63
61
@@ -127,16 +125,16 @@ template <> struct SearchEngineData<routing_algorithms::mld::Algorithm>
127
125
MapMatchingMultiLayerDijkstraHeapData,
128
126
util::TwoLevelStorage<NodeID, int >>;
129
127
130
- using SearchEngineHeapPtr = boost::thread_specific_ptr <QueryHeap>;
131
- using ManyToManyHeapPtr = boost::thread_specific_ptr <ManyToManyQueryHeap>;
132
- using MapMatchingHeapPtr = boost::thread_specific_ptr <MapMatchingQueryHeap>;
128
+ using SearchEngineHeapPtr = std::unique_ptr <QueryHeap>;
129
+ using ManyToManyHeapPtr = std::unique_ptr <ManyToManyQueryHeap>;
130
+ using MapMatchingHeapPtr = std::unique_ptr <MapMatchingQueryHeap>;
133
131
134
- static SearchEngineHeapPtr forward_heap_1;
135
- static SearchEngineHeapPtr reverse_heap_1;
136
- static MapMatchingHeapPtr map_matching_forward_heap_1;
137
- static MapMatchingHeapPtr map_matching_reverse_heap_1;
132
+ static thread_local SearchEngineHeapPtr forward_heap_1;
133
+ static thread_local SearchEngineHeapPtr reverse_heap_1;
134
+ static thread_local MapMatchingHeapPtr map_matching_forward_heap_1;
135
+ static thread_local MapMatchingHeapPtr map_matching_reverse_heap_1;
138
136
139
- static ManyToManyHeapPtr many_to_many_heap;
137
+ static thread_local ManyToManyHeapPtr many_to_many_heap;
140
138
141
139
void InitializeOrClearFirstThreadLocalStorage (unsigned number_of_nodes,
142
140
unsigned number_of_boundary_nodes);
@@ -148,4 +146,4 @@ template <> struct SearchEngineData<routing_algorithms::mld::Algorithm>
148
146
};
149
147
} // namespace osrm::engine
150
148
151
- #endif // SEARCH_ENGINE_DATA_HPP
149
+ #endif // SEARCH_ENGINE_DATA_HPP
0 commit comments