mirror of https://gitee.com/bigwinds/arangodb
Bug fix 3.3/make rest handlers indirect (#5322)
This commit is contained in:
parent
02675b96a9
commit
ab28867deb
|
@ -1,6 +1,9 @@
|
||||||
v3.3.9 (xxxx-xx-xx)
|
v3.3.9 (xxxx-xx-xx)
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
|
* make /_api/index, /_api/database and /_api/user REST handlers use the scheduler's internal
|
||||||
|
queue, so they do not run in an I/O handling thread
|
||||||
|
|
||||||
* fixed issue #4919: C++ implementation of LIKE function now matches the old and correct
|
* fixed issue #4919: C++ implementation of LIKE function now matches the old and correct
|
||||||
behaviour of the javascript implementation.
|
behaviour of the javascript implementation.
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ class RestDatabaseHandler : public arangodb::RestVocbaseBaseHandler {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
char const* name() const override final { return "RestDatabaseHandler"; }
|
char const* name() const override final { return "RestDatabaseHandler"; }
|
||||||
bool isDirect() const override { return true; }
|
bool isDirect() const override { return false; }
|
||||||
RestStatus execute() override;
|
RestStatus execute() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -36,7 +36,7 @@ class RestIndexHandler : public arangodb::RestVocbaseBaseHandler {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
char const* name() const override final { return "RestIndexHandler"; }
|
char const* name() const override final { return "RestIndexHandler"; }
|
||||||
bool isDirect() const override { return true; }
|
bool isDirect() const override { return false; }
|
||||||
RestStatus execute() override;
|
RestStatus execute() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -36,7 +36,7 @@ class RestUsersHandler : public arangodb::RestBaseHandler {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual char const* name() const override { return "RestUsersHandler"; }
|
virtual char const* name() const override { return "RestUsersHandler"; }
|
||||||
bool isDirect() const override { return true; }
|
bool isDirect() const override { return false; }
|
||||||
RestStatus execute() override;
|
RestStatus execute() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -69,6 +69,7 @@ class JobGuard : public SameThreadAsserter {
|
||||||
if (_isWorkingFlag) {
|
if (_isWorkingFlag) {
|
||||||
_isWorkingFlag = false;
|
_isWorkingFlag = false;
|
||||||
|
|
||||||
|
TRI_ASSERT(_isWorking > 0);
|
||||||
if (0 == --_isWorking) {
|
if (0 == --_isWorking) {
|
||||||
// if this is the last JobGuard we inform the
|
// if this is the last JobGuard we inform the
|
||||||
// scheduler that the thread is back to idle
|
// scheduler that the thread is back to idle
|
||||||
|
@ -79,6 +80,7 @@ class JobGuard : public SameThreadAsserter {
|
||||||
if (_isBlockedFlag) {
|
if (_isBlockedFlag) {
|
||||||
_isBlockedFlag = false;
|
_isBlockedFlag = false;
|
||||||
|
|
||||||
|
TRI_ASSERT(_isBlocked > 0);
|
||||||
if (0 == --_isBlocked) {
|
if (0 == --_isBlocked) {
|
||||||
// if this is the last JobGuard we inform the
|
// if this is the last JobGuard we inform the
|
||||||
// scheduler that the thread is now unblocked
|
// scheduler that the thread is now unblocked
|
||||||
|
|
Loading…
Reference in New Issue