MCPcopy Create free account
hub / github.com/apache/brpc / TrackMeNow

Function TrackMeNow

src/brpc/trackme.cpp:189–220  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

187}
188
189static void TrackMeNow(std::unique_lock<pthread_mutex_t>& mu) {
190 if (s_trackme_addr == NULL) {
191 return;
192 }
193 if (s_trackme_chan == NULL) {
194 Channel* chan = new (std::nothrow) Channel;
195 if (chan == NULL) {
196 LOG(FATAL) << "Fail to new trackme channel";
197 return;
198 }
199 ChannelOptions opt;
200 // keep #connections on server-side low
201 opt.connection_type = CONNECTION_TYPE_SHORT;
202 if (chan->Init(FLAGS_trackme_server.c_str(), "c_murmurhash", &opt) != 0) {
203 LOG(WARNING) << "Fail to connect to " << FLAGS_trackme_server;
204 delete chan;
205 return;
206 }
207 s_trackme_chan = chan;
208 }
209 mu.unlock();
210 TrackMeService_Stub stub(s_trackme_chan);
211 TrackMeRequest req;
212 req.set_rpc_version(g_rpc_version);
213 req.set_server_addr(*s_trackme_addr);
214 TrackMeResponse* res = new TrackMeResponse;
215 Controller* cntl = new Controller;
216 cntl->set_request_code(policy::MurmurHash32(s_trackme_addr->data(), s_trackme_addr->size()));
217 google::protobuf::Closure* done =
218 ::brpc::NewCallback(&HandleTrackMeResponse, cntl, res);
219 stub.TrackMe(cntl, &req, res, done);
220}
221
222// Called in global.cpp
223// [Thread-safe] supposed to be called in low frequency.

Callers 1

TrackMeFunction · 0.85

Calls 9

MurmurHash32Function · 0.85
NewCallbackFunction · 0.85
set_request_codeMethod · 0.80
TrackMeMethod · 0.80
InitMethod · 0.45
c_strMethod · 0.45
unlockMethod · 0.45
dataMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected