AFAICS, there is nothing wrong with your program. However, your assumption that the thread ID have to be unique is wrong. It is only unique for each process, but not system wide:
Now sort-u will produce only 2 entries:
Cheers,
/Lew
Hello,
i have 2 questions:
1. Can I get the current memory usage of a thread?
2. Can I use a member-function as (void*)(*)(void*) method to create a new thread with "pthread_create(...)"??
I would be happy about any suggestion.
Regards,
Rolf (2 Replies)
Hi all!
I am implementing an http server in c++ using the posix thread, but i am having a memory leak and i cannot find the reason.
I have already commented out the section that initializes the threads and i found out, the problem is when i initialize/run the threads.
In the threads i have... (1 Reply)
Hello,
I have created program that run threads one by one, maximum 100. Each thread will process one block of data, and once it`s finished, new thread is created with new block of data....etc
I have array of values to control status of each thread, like this:
array_thread_status=1... (11 Replies)
I am facing a strange error while creating posix threads:
Given below are two snippets of code, the first one works whereas the second one gives a garbage value in the output.
Snippet 1
This works:
--------------
int *threadids;
threadids = (int *) malloc (num_threads * sizeof(int));
... (4 Replies)
i am creating threads in my program using the POSIX interface.
when the thread starts executing i run out of memory and get a core dump.
i have tried to increase the threads stack size using pthread_attr_setstacksize, but of no use since i guess the dynamic memory is allocated on the heap and... (1 Reply)
Discussion started by: aniketkadu2002
1 Replies
LEARN ABOUT BSD
pthread_detach
PTHREAD_DETACH(3) Linux Programmer's Manual PTHREAD_DETACH(3)NAME
pthread_detach - detach a thread
SYNOPSIS
#include <pthread.h>
int pthread_detach(pthread_t thread);
Compile and link with -pthread.
DESCRIPTION
The pthread_detach() function marks the thread identified by thread as detached. When a detached thread terminates, its resources are
automatically released back to the system without the need for another thread to join with the terminated thread.
Attempting to detach an already detached thread results in unspecified behavior.
RETURN VALUE
On success, pthread_detach() returns 0; on error, it returns an error number.
ERRORS
EINVAL thread is not a joinable thread.
ESRCH No thread with the ID thread could be found.
ATTRIBUTES
For an explanation of the terms used in this section, see attributes(7).
+-----------------+---------------+---------+
|Interface | Attribute | Value |
+-----------------+---------------+---------+
|pthread_detach() | Thread safety | MT-Safe |
+-----------------+---------------+---------+
CONFORMING TO
POSIX.1-2001, POSIX.1-2008.
NOTES
Once a thread has been detached, it can't be joined with pthread_join(3) or be made joinable again.
A new thread can be created in a detached state using pthread_attr_setdetachstate(3) to set the detached attribute of the attr argument of
pthread_create(3).
The detached attribute merely determines the behavior of the system when the thread terminates; it does not prevent the thread from being
terminated if the process terminates using exit(3) (or equivalently, if the main thread returns).
Either pthread_join(3) or pthread_detach() should be called for each thread that an application creates, so that system resources for the
thread can be released. (But note that the resources of any threads for which one of these actions has not been done will be freed when
the process terminates.)
EXAMPLE
The following statement detaches the calling thread:
pthread_detach(pthread_self());
SEE ALSO pthread_attr_setdetachstate(3), pthread_cancel(3), pthread_create(3), pthread_exit(3), pthread_join(3), pthreads(7)COLOPHON
This page is part of release 4.15 of the Linux man-pages project. A description of the project, information about reporting bugs, and the
latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.
Linux 2017-09-15 PTHREAD_DETACH(3)