Sponsored Content
Operating Systems Solaris Killing a thread having a listener socket Post 302412720 by manustone on Tuesday 13th of April 2010 10:22:07 AM
Old 04-13-2010
Killing a thread having a listener socket

Hi All

I have a separate thread ListenerThread having a socket listening to info broadcasted by some remote server. This is created in my main thread.

Because of requirements, once the separate thread is started I need to avoid any blocking function on the main thread. Once it comes to the point to exit the application I cannot perform a join on the listener thread so the only thing I can do is to KILL it.

My questions are:

what happens to the network resoruces allocated by the function passed to the thead? Is the socket closed properly or there might be something pending? ( most worried about this )

is this procedure fast enough i.e. is the thread killed so that interrupt immediately ?

I am working with Linux ...what command or what can I check to ensure that there is no networking resource left pending or that something went wrong for the Operating system? whatever might be pending...

I am a bit scared that the killing of the application is not fast enough to guarantee that the exit of the application is clear.

I thank you very much for your help

Regards MNSTN

NOTE: I am using boost::thread in C++
 

10 More Discussions You Might Find Interesting

1. Programming

How to implement the Listener thread

Listener thread is maintained at server side : I have Implemented as: /* specify queue */ listen(sockfd, 5); while (1) { clilen = sizeof(cli_addr); newsockfd = accept(sockfd, (struct sockaddr *) &cli_addr, &clilen); if... (0 Replies)
Discussion started by: shilpi_gup
0 Replies

2. IP Networking

Can we write a multiple thread to receive from a single socket file descriptor

Hi Friends, I have written a program which will listener for more than 1000 requests per second from a single socket descriptor and then it will process those requestes. Its taking X amount of time. Now i want to reduce that time. Will I can write multiple threads to receive the... (2 Replies)
Discussion started by: pa.chidhambaram
2 Replies

3. UNIX for Advanced & Expert Users

connect problem for sctp socket (ipv6 socket) - Runtime fail Invalid Arguments

Hi, I was porting ipv4 application to ipv6; i was done with TCP transports. Now i am facing problem with SCTp transport at runtime. To test SCTP transport I am using following server and client socket programs. Server program runs fine, but client program fails giving Invalid Arguments for... (0 Replies)
Discussion started by: chandrutiptur
0 Replies

4. Programming

socket function to read a webpage (socket.h)

Why does this socket function only read the first 1440 chars of the stream. Why not the whole stream ? I checked it with gdm and valgrind and everything seems correct... #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <string.h> #include... (3 Replies)
Discussion started by: cyler
3 Replies

5. Programming

Error with socket operation on non-socket

Dear Experts, i am compiling my code in suse 4.1 which is compiling fine, but at runtime it is showing me for socket programming error no 88 as i searched in errno.h it is telling me socket operation on non socket, what is the meaning of this , how to deal with this error , please... (1 Reply)
Discussion started by: vin_pll
1 Replies

6. Shell Programming and Scripting

Finding the age of a unix process, killing old processes, killing zombie processes

I had issues with processes locking up. This script checks for processes and kills them if they are older than a certain time. Its uses some functions you'll need to define or remove, like slog() which I use for logging, and is_running() which checks if this script is already running so you can... (0 Replies)
Discussion started by: sukerman
0 Replies

7. IP Networking

Clarification - Setting socket options at the same time when socket is listening

I need clarification on whether it is okay to set socket options on a listening socket simultaneously when it is being used in an accept() call? Following is the scenario:- -- Task 1 - is executing in a loop - polling a listen socket, lets call it 'fd', (whose file descriptor is global)... (2 Replies)
Discussion started by: jake24
2 Replies

8. AIX

SIGHUP killing Oracle Listener Process

I have a cold backup script which backs up my database and then restarts the oracle listener and database at around 01:30 I can see at this time that my database and listener are indeed running. However at around 02:17 my listener process receives a SIGHUP 1 signal from the AIX OS ( version 5.3 )... (2 Replies)
Discussion started by: jimthompson
2 Replies

9. IP Networking

thread blocked while deleting a socket.

Hello to all, I have below function, but the thread will be bloked at the line delete pListenSocket; // Close and delete If I put some cpu timing switching function prior to it, then no blocking pop up. printf("xyz\n"); // or sleep(100); delete pListenSocket; // Close and... (1 Reply)
Discussion started by: shinypro
1 Replies

10. Programming

Killing a Child Thread

What is the best way for a parent to kill a child thread that has blocked on a command it cannot finish and will never read another line of its code? Will pthread_cancel() work with a thread that will never stop processing its current line of code? Thanks. (4 Replies)
Discussion started by: Brandon9000
4 Replies
PTHREAD_CREATE(3)					   BSD Library Functions Manual 					 PTHREAD_CREATE(3)

NAME
pthread_create -- create a new thread SYNOPSIS
#include <pthread.h> int pthread_create(pthread_t *restrict thread, const pthread_attr_t *restrict attr, void *(*start_routine)(void *), void *restrict arg); DESCRIPTION
The pthread_create() function is used to create a new thread, with attributes specified by attr, within a process. If attr is NULL, the default attributes are used. If the attributes specified by attr are modified later, the thread's attributes are not affected. Upon suc- cessful completion, pthread_create() will store the ID of the created thread in the location specified by thread. Upon its creation, the thread executes start_routine, with arg as its sole argument. If start_routine returns, the effect is as if there was an implicit call to pthread_exit(), using the return value of start_routine as the exit status. Note that the thread in which main() was originally invoked differs from this. When it returns from main(), the effect is as if there was an implicit call to exit(), using the return value of main() as the exit status. Upon thread exit the storage for the thread must be reclaimed by another thread via a call to pthread_join(). Alternatively, pthread_detach() may be called on the thread to indicate that the system may automatically reclaim the thread storage upon exit. The pthread_attr_setdetachstate() function may be used on the attr argument passed to pthread_create() in order to achieve the same effect as a call to pthread_detach() on the newly created thread. The signal state of the new thread is initialized as: o The signal mask is inherited from the creating thread. o The set of signals pending for the new thread is empty. RETURN VALUES
If successful, the pthread_create() function will return zero. Otherwise, an error number will be returned to indicate the error. ERRORS
pthread_create() will fail if: [EAGAIN] The system lacked the necessary resources to create another thread, or the system-imposed limit on the total number of threads in a process [PTHREAD_THREADS_MAX] would be exceeded. [EINVAL] The value specified by attr is invalid. SEE ALSO
fork(2), pthread_cleanup_pop(3), pthread_cleanup_push(3), pthread_detach(3), pthread_exit(3), pthread_join(3) STANDARDS
pthread_create() conforms to ISO/IEC 9945-1:1996 (``POSIX.1''). BSD
April 4, 1996 BSD
All times are GMT -4. The time now is 09:35 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy