MCPcopy Create free account
hub / github.com/F-Stack/f-stack / mt_multi_sendrcv_ex

Method mt_multi_sendrcv_ex

adapter/micro_thread/mt_concurrent.cpp:383–423  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

381}
382
383int NS_MICRO_THREAD::mt_multi_sendrcv_ex(IMtActList& req_list, int timeout)
384{
385 utime64_t start_ms = MtFrame::Instance()->GetLastClock();
386 utime64_t curr_ms = 0;
387
388 int rc = mt_multi_newsock(req_list);
389 if (rc < 0)
390 {
391 MT_ATTR_API(320842, 1);
392 MTLOG_ERROR("mt_multi_sendrcv new sock failed, ret: %d", rc);
393 return -1;
394 }
395
396 rc = mt_multi_open(req_list, timeout);
397 if (rc < 0)
398 {
399 MT_ATTR_API(320843, 1);
400 MTLOG_ERROR("mt_multi_sendrcv open failed, ret: %d", rc);
401 return -2;
402 }
403
404 curr_ms = MtFrame::Instance()->GetLastClock();
405 rc = mt_multi_sendto(req_list, timeout - (curr_ms - start_ms));
406 if (rc < 0)
407 {
408 MT_ATTR_API(320844, 1);
409 MTLOG_ERROR("mt_multi_sendrcv send failed, ret: %d", rc);
410 return -3;
411 }
412
413 curr_ms = MtFrame::Instance()->GetLastClock();
414 rc = mt_multi_recvfrom(req_list, timeout - (curr_ms - start_ms));
415 if (rc < 0)
416 {
417 MT_ATTR_API(320845, 1);
418 MTLOG_ERROR("mt_multi_sendrcv recv failed, ret: %d", rc);
419 return -4;
420 }
421
422 return 0;
423}
424
425int NS_MICRO_THREAD::mt_msg_sendrcv(IMtActList& req_list, int timeout)
426{

Callers

nothing calls this directly

Calls 1

GetLastClockMethod · 0.80

Tested by

no test coverage detected