aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/cpp/common/alarm.cc
diff options
context:
space:
mode:
authorGravatar Vijay Pai <vpai@google.com>2016-02-11 03:30:10 -0800
committerGravatar Vijay Pai <vpai@google.com>2016-02-11 03:30:10 -0800
commit810a13e2d3fef85c706ef5c80dd12bb864a2ab6b (patch)
tree2cd17595f006802478d3c66d2e5f4be0c3eb1b72 /src/cpp/common/alarm.cc
parent29e1d95a21daca20f3e886cde037e61d7500327e (diff)
Remove a small allocation, at the cost of a little uglier header file.
This commit may or may not be a great tradeoff.
Diffstat (limited to 'src/cpp/common/alarm.cc')
-rw-r--r--src/cpp/common/alarm.cc18
1 files changed, 2 insertions, 16 deletions
diff --git a/src/cpp/common/alarm.cc b/src/cpp/common/alarm.cc
index aca15dc5eb..a289688768 100644
--- a/src/cpp/common/alarm.cc
+++ b/src/cpp/common/alarm.cc
@@ -32,29 +32,15 @@
#include <grpc++/alarm.h>
#include <grpc++/completion_queue.h>
-#include <grpc++/impl/codegen/completion_queue_tag.h>
#include <grpc++/impl/grpc_library.h>
#include <grpc/grpc.h>
namespace grpc {
-class AlarmEntry : public CompletionQueueTag {
- public:
- AlarmEntry(void* tag) : tag_(tag) {}
- bool FinalizeResult(void** tag, bool* status) GRPC_OVERRIDE {
- *tag = tag_;
- delete this;
- return true;
- }
-
- private:
- void* tag_;
-};
-
static internal::GrpcLibraryInitializer g_gli_initializer;
Alarm::Alarm(CompletionQueue* cq, gpr_timespec deadline, void* tag)
- : alarm_(grpc_alarm_create(cq->cq(), deadline,
- static_cast<void*>(new AlarmEntry(tag)))) {
+ : tag_(tag),
+ alarm_(grpc_alarm_create(cq->cq(), deadline, static_cast<void*>(&tag_))) {
g_gli_initializer.summon();
}