From 5bc646ff443ccbb84691fe6ec02a0bfb0ce84cc5 Mon Sep 17 00:00:00 2001 From: Andreas Streichardt Date: Tue, 26 Apr 2016 08:09:33 +0000 Subject: [PATCH 1/3] Put required debian options into a script --- scripts/build-deb.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100755 scripts/build-deb.sh diff --git a/scripts/build-deb.sh b/scripts/build-deb.sh new file mode 100755 index 0000000000..16c9923c58 --- /dev/null +++ b/scripts/build-deb.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +set -e + +mkdir -p build-debian +cd build-debian +cmake -DASM_OPTIMIZATIONS=Off -DETCDIR=/etc -DCMAKE_INSTALL_PREFIX=/usr -DVARDIR=/var .. +make -j12 +cpack -G DEB --verbose +cd .. From a0883fb0fc4ab06a354a48119bcca4f4e066dea4 Mon Sep 17 00:00:00 2001 From: Jan Steemann Date: Tue, 26 Apr 2016 10:48:42 +0200 Subject: [PATCH 2/3] fixed busy wait --- arangod/Cluster/HeartbeatThread.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arangod/Cluster/HeartbeatThread.cpp b/arangod/Cluster/HeartbeatThread.cpp index 284069dde9..74f366abba 100644 --- a/arangod/Cluster/HeartbeatThread.cpp +++ b/arangod/Cluster/HeartbeatThread.cpp @@ -188,7 +188,7 @@ void HeartbeatThread::runDBServer() { CONDITION_LOCKER(locker, _condition); wasNotified = _wasNotified; if (!wasNotified) { - locker.wait(static_cast(remain) * 1000000); + locker.wait(static_cast(remain * 1000000.0)); wasNotified = _wasNotified; _wasNotified = false; } From 4d440220a5ef897184c1fb711dbc339e8041bce8 Mon Sep 17 00:00:00 2001 From: Michael Hackstein Date: Tue, 26 Apr 2016 10:50:30 +0200 Subject: [PATCH 3/3] Used a shared builder for a closure instead of creating a new one every time. --- arangod/V8Server/V8Traverser.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/arangod/V8Server/V8Traverser.cpp b/arangod/V8Server/V8Traverser.cpp index 0028358477..fe6e27ab87 100644 --- a/arangod/V8Server/V8Traverser.cpp +++ b/arangod/V8Server/V8Traverser.cpp @@ -592,7 +592,8 @@ std::unique_ptr TRI_RunShortestPathSearch( auto edgeFilterClosure = [&opts](VPackSlice edge) -> bool { return opts.matchesEdge(edge); }; - auto vertexFilterClosure = [&opts](VPackSlice const& vertex) -> bool { + VPackBuilder tmpBuilder; + auto vertexFilterClosure = [&opts, &tmpBuilder](VPackSlice const& vertex) -> bool { std::string v = vertex.copyString(); size_t pos = v.find('/'); @@ -607,12 +608,12 @@ std::unique_ptr TRI_RunShortestPathSearch( std::string col = v.substr(0, pos); std::string key = v.substr(pos + 1); - VPackBuilder tmp; - tmp.openObject(); - tmp.add(Transaction::KeyString, VPackValue(key)); - tmp.close(); + tmpBuilder.clear(); + tmpBuilder.openObject(); + tmpBuilder.add(Transaction::KeyString, VPackValue(key)); + tmpBuilder.close(); OperationOptions opOpts; - OperationResult opRes = opts.trx()->document(col, tmp.slice(), opOpts); + OperationResult opRes = opts.trx()->document(col, tmpBuilder.slice(), opOpts); if (opRes.failed()) { return false; }