1
0
Fork 0

Fixed problem with thread construction for constant string

This commit is contained in:
Michael Hackstein 2015-04-23 15:18:56 -07:00
parent 48e4fd55a8
commit 80e002cfc9
2 changed files with 6 additions and 11 deletions

View File

@ -54,8 +54,6 @@ class SimpleEdgeExpander {
CollectionNameResolver const resolver;
bool usesDist;
string dirung;
public:
Traverser::VertexId extractFromId(TRI_doc_mptr_copy_t& ptr) {
@ -84,7 +82,6 @@ class SimpleEdgeExpander {
void operator() ( Traverser::VertexId source,
vector<Traverser::Neighbor>& result
) {
cout << dirung << endl;
std::vector<TRI_doc_mptr_copy_t> edges;
TransactionBase fake(true); // Fake a transaction to please checks. Due to multi-threading
// Process Vertex Id!
@ -163,14 +160,12 @@ class SimpleEdgeExpander {
TRI_edge_direction_e direction,
TRI_document_collection_t* edgeCollection,
string edgeCollectionName,
CollectionNameResolver const resolver,
string dirung
CollectionNameResolver const resolver
) :
direction(direction),
edgeCollection(edgeCollection),
resolver(resolver),
usesDist(false),
dirung(dirung)
usesDist(false)
{
cout << direction << endl;
edgeIdPrefix = edgeCollectionName + "/";
@ -325,8 +320,8 @@ void TRI_RunDijkstraSearch (const v8::FunctionCallbackInfo<v8::Value>& args) {
TRI_document_collection_t* ecol = trx.trxCollection(col->_cid)->_collection->_collection;
CollectionNameResolver resolver1(vocbase);
CollectionNameResolver resolver2(vocbase);
SimpleEdgeExpander forwardExpander(TRI_EDGE_OUT, ecol, edgeCollectionName, resolver1, "A");
SimpleEdgeExpander backwardExpander(TRI_EDGE_IN, ecol, edgeCollectionName, resolver2, "B");
SimpleEdgeExpander forwardExpander(TRI_EDGE_OUT, ecol, edgeCollectionName, resolver1);
SimpleEdgeExpander backwardExpander(TRI_EDGE_IN, ecol, edgeCollectionName, resolver2);
Traverser traverser(forwardExpander, backwardExpander);
unique_ptr<Traverser::Path> path(traverser.ShortestPath(startVertex, targetVertex));

View File

@ -154,9 +154,9 @@ Traverser::Path* Traverser::ShortestPath (VertexId const& start,
ThreadInfo backwardInfo(_backwardLookup, _backwardQueue, _backwardMutex);
std::thread forwardSearcher(&Traverser::searchFromVertex,
this, &forwardInfo, &backwardInfo, start, forwardExpander, "X");
this, &forwardInfo, &backwardInfo, start, forwardExpander, string("X"));
std::thread backwardSearcher(&Traverser::searchFromVertex,
this, &backwardInfo, &forwardInfo, target, backwardExpander, "Y");
this, &backwardInfo, &forwardInfo, target, backwardExpander, string("Y"));
forwardSearcher.join();
backwardSearcher.join();