Listener thread with thread cancellation

This commit is contained in:
2024-03-15 22:05:09 +05:30
parent 48cc4b011e
commit 7ab0034666
13 changed files with 40 additions and 32 deletions

View File

@@ -2,24 +2,20 @@
"Version": 1,
"WorkspaceRootPath": "E:\\MultiThreading_Part_A\\ThreadCancellation_async\\Listener_Thread\\Listener_server\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|E:\\MultiThreading_Part_A\\ThreadCancellation_async\\Listener_Thread\\Listener_server\\network_utils.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:network_utils.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
},
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|E:\\MultiThreading_Part_A\\ThreadCancellation_async\\Listener_Thread\\Listener_server\\Listener_server.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:Listener_server.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
},
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|E:\\MultiThreading_Part_A\\ThreadCancellation_async\\Listener_Thread\\Listener_server\\network_utils.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:network_utils.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
},
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|E:\\MultiThreading_Part_A\\ThreadCancellation_async\\Listener_Thread\\Listener_server\\network_utils.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:network_utils.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
},
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|CMake Overview Pages||{B1CAA5B0-FEB1-4350-8AB9-F895876842F2}"
},
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|E:\\MultiThreading_Part_A\\ThreadCancellation_async\\Listener_Thread\\Listener_server\\CMakeLists.txt||{8B382828-6202-11D1-8870-0000F87579D2}",
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:CMakeLists.txt||{8B382828-6202-11D1-8870-0000F87579D2}"
}
],
"DocumentGroupContainers": [
@@ -29,7 +25,7 @@
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 2,
"SelectedChildIndex": 3,
"Children": [
{
"$type": "Bookmark",
@@ -45,31 +41,30 @@
"RelativeToolTip": "network_utils.h",
"ViewState": "AQIAAA8AAAAAAAAAAAAAAAAAAAAAAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
"WhenOpened": "2024-03-15T10:41:05.002Z",
"EditorCaption": ""
"WhenOpened": "2024-03-15T10:41:05.002Z"
},
{
"$type": "Document",
"DocumentIndex": 0,
"DocumentIndex": 1,
"Title": "network_utils.c",
"DocumentMoniker": "E:\\MultiThreading_Part_A\\ThreadCancellation_async\\Listener_Thread\\Listener_server\\network_utils.c",
"RelativeDocumentMoniker": "network_utils.c",
"ToolTip": "E:\\MultiThreading_Part_A\\ThreadCancellation_async\\Listener_Thread\\Listener_server\\network_utils.c",
"RelativeToolTip": "network_utils.c",
"ViewState": "AQIAADkAAAAAAAAAAAAAAEcAAAAuAAAA",
"ViewState": "AQIAABgAAAAAAAAAAAAAAAcAAAAJAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000423|",
"WhenOpened": "2024-03-15T10:40:54.851Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 1,
"DocumentIndex": 0,
"Title": "Listener_server.c",
"DocumentMoniker": "E:\\MultiThreading_Part_A\\ThreadCancellation_async\\Listener_Thread\\Listener_server\\Listener_server.c",
"RelativeDocumentMoniker": "Listener_server.c",
"ToolTip": "E:\\MultiThreading_Part_A\\ThreadCancellation_async\\Listener_Thread\\Listener_server\\Listener_server.c",
"RelativeToolTip": "Listener_server.c",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAsAAAAAAAAA",
"ViewState": "AQIAACEAAAAAAAAAAAAAAAwAAAALAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000423|",
"WhenOpened": "2024-03-15T05:44:00.942Z",
"EditorCaption": ""
@@ -82,19 +77,6 @@
"ToolTip": "CMake Overview Pages",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001001|",
"WhenOpened": "2024-03-15T05:40:27.357Z"
},
{
"$type": "Document",
"DocumentIndex": 4,
"Title": "CMakeLists.txt",
"DocumentMoniker": "E:\\MultiThreading_Part_A\\ThreadCancellation_async\\Listener_Thread\\Listener_server\\CMakeLists.txt",
"RelativeDocumentMoniker": "CMakeLists.txt",
"ToolTip": "E:\\MultiThreading_Part_A\\ThreadCancellation_async\\Listener_Thread\\Listener_server\\CMakeLists.txt",
"RelativeToolTip": "CMakeLists.txt",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003109|",
"WhenOpened": "2024-03-15T10:40:32.199Z",
"EditorCaption": ""
}
]
}

View File

@@ -25,5 +25,6 @@
"ExpandedNodes": [
""
],
"SelectedNode": "\\network_utils.h",
"PreviewInSolutionExplorer": false
}

View File

@@ -1,6 +1,6 @@
1071467557 E:\MultiThreading_Part_A\ThreadCancellation_async\Listener_Thread\Listener_server\CMakeLists.txt
1015371089 E:\MultiThreading_Part_A\ThreadCancellation_async\Listener_Thread\Listener_server\CMakePresets.json
1002866260 E:\MultiThreading_Part_A\ThreadCancellation_async\Listener_Thread\Listener_server\Listener_server.c
-1617246206 E:\MultiThreading_Part_A\ThreadCancellation_async\Listener_Thread\Listener_server\network_utils.c
428312187 E:\MultiThreading_Part_A\ThreadCancellation_async\Listener_Thread\Listener_server\Listener_server.c
1110334189 E:\MultiThreading_Part_A\ThreadCancellation_async\Listener_Thread\Listener_server\network_utils.c
-2022489816 E:\MultiThreading_Part_A\ThreadCancellation_async\Listener_Thread\Listener_server\network_utils.h
-536376222 E:\MultiThreading_Part_A\ThreadCancellation_async\Listener_Thread\Listener_server\
1220180381 E:\MultiThreading_Part_A\ThreadCancellation_async\Listener_Thread\Listener_server\

View File

@@ -10,7 +10,7 @@ pkt_recv_fn(
uint32_t port_no
) {
printf("%s() : pkt recvd = %s, pkt size = %u\n",
printf("\n%s() : pkt recvd = %s, pkt size = %u\n",
__FUNCTION__, pkt, pkt_size);
}
@@ -34,6 +34,30 @@ main(int argc, char** argv) {
pkt_recv_fn
);
int th_no,cnt = 0;
while (1) {
printf("Listener thread you can cancel [ 1 - 2 ]:");
scanf("%d", &th_no);
getchar();
switch (th_no) {
case 1:
pthread_cancel((*listener1));
break;
case 2:
pthread_cancel((*listener2));
break;
case 1000:
exit(EXIT_SUCCESS);
break;
default:
break;
}
sleep(1);
}
pthread_exit(0);
return 0;
}

View File

@@ -81,6 +81,7 @@ _udp_server_create_and_start(void* arg) {
MAX_PACKET_BUFFER_SIZE, 0,
(struct sockaddr*)&client_addr, &addr_len);
recv_fn(recv_buffer, bytes_recvd,
network_covert_ip_n_to_p(
(uint32_t)htonl(client_addr.sin_addr.s_addr), 0),