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
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
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
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
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
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
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
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
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
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
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
LEARN ABOUT OSX
pthread_create
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