Hi all,
I code my example following src/vpp-api/client, but do {vac_read}while(1)
often block when the results-num does not know.
It shows pthread_cond_wait when gdb.
Help please!
Thanks very much!
void printIntefaces()
{
api_main_t * am = &api_main;
vl_api_sw_interface_dump_t message;
M_NOALLOC(SW_INTERFACE_DUMP);
message.name_filter_valid = 0;
strcpy(message.name_filter, "Gigabit");
vac_write((char *)&message, sizeof(message));
char* pMsg = NULL;
int nLen = 0;
int ret = 0;
int nCount = 0;
do {
printf("begin interface read .. \n");
ret = vac_read(&pMsg, &nLen, 1);
printf("begin interface end .. \n");
if(ret != -1)
{
vl_api_sw_interface_details_t* pSV = (vl_api_sw_interface_details_t*)pMsg;
printf("%lu:%s \n", ntohl(pSV->sw_if_index), pSV->interface_name);
vac_free(pMsg);
nCount += 1;
}
else{
break;
}
}while(1);
printf("get real count[%d] \n", nCount);
}
[email protected]
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#10465): https://lists.fd.io/g/vpp-dev/message/10465
Mute This Topic: https://lists.fd.io/mt/25510961/21656
Group Owner: [email protected]
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-