|
|
|
@ -39,21 +39,22 @@ |
|
|
|
|
namespace grpc { |
|
|
|
|
|
|
|
|
|
class AlarmEntry : public CompletionQueueTag { |
|
|
|
|
public: |
|
|
|
|
AlarmEntry(void *tag): tag_(tag) {} |
|
|
|
|
public: |
|
|
|
|
AlarmEntry(void* tag) : tag_(tag) {} |
|
|
|
|
bool FinalizeResult(void** tag, bool* status) GRPC_OVERRIDE { |
|
|
|
|
*tag = tag_; |
|
|
|
|
delete this; |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
private: |
|
|
|
|
|
|
|
|
|
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)))) { |
|
|
|
|
: alarm_(grpc_alarm_create(cq->cq(), deadline, |
|
|
|
|
static_cast<void*>(new AlarmEntry(tag)))) { |
|
|
|
|
g_gli_initializer.summon(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|