diff options
author | Ben Noordhuis <info@bnoordhuis.nl> | 2015-01-30 12:54:53 +0100 |
---|---|---|
committer | Ben Noordhuis <info@bnoordhuis.nl> | 2015-02-11 23:06:29 +0100 |
commit | 38dc0cd8f43867092ce190db0e8fddae5a6d5f6c (patch) | |
tree | 3df685453148bfa0690baaf77151cda20b9e7bd9 /src/req_wrap.h | |
parent | 58eb00c6936ac1a01663b2c363fb493a5e0c00a4 (diff) | |
download | android-node-v8-38dc0cd8f43867092ce190db0e8fddae5a6d5f6c.tar.gz android-node-v8-38dc0cd8f43867092ce190db0e8fddae5a6d5f6c.tar.bz2 android-node-v8-38dc0cd8f43867092ce190db0e8fddae5a6d5f6c.zip |
src: switch from QUEUE to intrusive list
This commit also breaks up req_wrap.h into req-wrap.h and req-wrap-inl.h
to work around a circular dependency issue in env.h.
PR-URL: https://github.com/iojs/io.js/pull/667
Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Diffstat (limited to 'src/req_wrap.h')
-rw-r--r-- | src/req_wrap.h | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/src/req_wrap.h b/src/req_wrap.h deleted file mode 100644 index 6ec0251434..0000000000 --- a/src/req_wrap.h +++ /dev/null @@ -1,49 +0,0 @@ -#ifndef SRC_REQ_WRAP_H_ -#define SRC_REQ_WRAP_H_ - -#include "async-wrap.h" -#include "async-wrap-inl.h" -#include "env.h" -#include "env-inl.h" -#include "queue.h" -#include "util.h" - -namespace node { - -template <typename T> -class ReqWrap : public AsyncWrap { - public: - ReqWrap(Environment* env, - v8::Handle<v8::Object> object, - AsyncWrap::ProviderType provider) - : AsyncWrap(env, object, provider) { - if (env->in_domain()) - object->Set(env->domain_string(), env->domain_array()->Get(0)); - - QUEUE_INSERT_TAIL(env->req_wrap_queue(), &req_wrap_queue_); - } - - - ~ReqWrap() override { - QUEUE_REMOVE(&req_wrap_queue_); - // Assert that someone has called Dispatched() - CHECK_EQ(req_.data, this); - CHECK_EQ(false, persistent().IsEmpty()); - persistent().Reset(); - } - - // Call this after the req has been dispatched. - void Dispatched() { - req_.data = this; - } - - // TODO(bnoordhuis) Make these private. - QUEUE req_wrap_queue_; - T req_; // *must* be last, GetActiveRequests() in node.cc depends on it -}; - - -} // namespace node - - -#endif // SRC_REQ_WRAP_H_ |