Reputation: 77
void main()
{
uint8 data;
HANDLE h1,h2,h3;
double Task2ms_Raster, Task10ms_Raster, Task100ms_Raster;
XCP_FN_TYPE Xcp_Initialize();
CreateSocket();
h1=TimerTask(2,TASK1,&Task2ms_Raster);
h2=TimerTask(10,TASK2,&Task10ms_Raster);
h3=TimerTask(100,TASK3,&Task100ms_Raster);
while(1)
{
data = recv(fd, recv_data, 512, 0);
if (data == SOCKET_ERROR)
{
printf("recv failed with error %d\n", WSAGetLastError());
}
else
{
pChunkData = recv_data;
chunkLen = sizeof(pChunkData);
XCP_FN_TYPE XcpIp_RxCallback( (uint16) chunkLen, (uint8*) *pChunkData, (uint16) port);
XCP_FN_TYPE XcpIp_OnTcpCxnClosed(port);
}
}
}
there are some function call like XCP_FN_TYPE Xcp_Initialize , CreateSocket (function definition is not shown) is running normally. But how to run
h1=TimerTask(2,TASK1,&Task2ms_Raster);
h2=TimerTask(10,TASK2,&Task10ms_Raster);
h3=TimerTask(100,TASK3,&Task100ms_Raster);
these task in parallel or in the background?
Upvotes: 0
Views: 294
Reputation: 2009
Run tasks in separate threads/processes and synchronize them with semaphores or mutexes.
Upvotes: 1