mirror of
https://github.com/Hizenberg469/MultiThreading_Part_A.git
synced 2026-04-19 18:12:24 +03:00
Listener thread with thread cancellation
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -25,5 +25,6 @@
|
||||
"ExpandedNodes": [
|
||||
""
|
||||
],
|
||||
"SelectedNode": "\\network_utils.h",
|
||||
"PreviewInSolutionExplorer": false
|
||||
}
|
||||
@@ -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\
|
||||
|
||||
Binary file not shown.
@@ -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;
|
||||
}
|
||||
@@ -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),
|
||||
|
||||
Reference in New Issue
Block a user