2
ベクターm_poStrandsにいくつかのブーストストランドshare_ptrが保存されているとします。また、tJobTypeは異なるタイプのジョブを示すenumです。 別のストランド(JOBB)のonJobを呼び出すためにあるストランド(JOBA)にジョブをポストしてから、時間差が約50ミリ秒です。 時間差分を減らす方法があるかどうかを知りたい。ブーストストランドから別のブーストストランドへのレイテンシを減らす方法
void postJob(tJobType oType, UINT8* pcBuffer, size_t iSize)
{
//...
m_poStrands[oType]->post(boost::bind(&onJob, this, oType, pcDestBuffer, iSize));
}
void onJob(tJobType oType, UINT8* pcBuffer, size_t iSize)
{
if (oType == JOBA)
{
//....
struct timeval sTV;
gettimeofday(&sTV, 0);
memcpy(pcDestBuffer, &sTV, sizeof(sTV));
pcDestBuffer += sizeof(sTV);
iSize += sizeof(sTV);
memcpy(pcDestBuffer, pcBuffer, iSize);
m_poStrands[JOBB]->(boost::bind(&onJob, this, JOBB, pcDestBuffer, iSize));
}
else if (oType == JOBB)
{
// get the time from buffer
// and calculate the dime diff
struct timeval eTV;
gettimeofday(&eTV, 0);
}
}