Programming :: Quickest Way To Get Thread Id
Jun 24, 2010What is the quickest way to get the thread id(tid) of the current thread in linux? Specifically I use fedora 13. ...and I am talking about inside a C++ program.
View 2 RepliesWhat is the quickest way to get the thread id(tid) of the current thread in linux? Specifically I use fedora 13. ...and I am talking about inside a C++ program.
View 2 RepliesI am going to use "pthread_setaffinity_np" to bind a thread to a specific core. My application has two threads. I have used mutex to assign a specific id to each thread and then bind that thread to a core different from another core. but it seems that the os assigns both thread to one core.What should I do to bind each thread to a specific core?
View 4 Replies View RelatedI am looking for the quickest way to do multiple searches for different files.Here is the scenario: I want to search for various icons one by one in a script. Preference is for the gnome icon theme.
The echo piped into grep part seems to take a long time. Is there a quicker way of doing this?I do not want to use slocate, sqlite or the like since that will require admin privileges to update the database and/or extra dependencies.
A simple TCP based chat server could allow users to use any TCP client (telnet, for example) to communicate with each other. For this question you should consider a single process, single thread server that can support exactly 2 clients at once, the server simply forwards whatever is sent from one client to the other (in both directions). Your server must not insist on any specific ordering of messages as soon as something is sent from one client it is immediately forwarded to the other client. As soon as either client terminates the connection the server can exit
View 4 Replies View RelatedIs there a library/system call that will return to me what CPU core a thread of execution is running on? I've looked for a bit on the net already and also in /usr/include and couldn't find one.
getcpu() and sched_getcpu() are two that I found, but when I include the appropriate header files (linux/getcpu.h, and sys/sched.h respectively), gcc says getcpu.h doesn't exist and the linker complains it cannot find the implementation in sched.h.
I'm sure I'm doing something really stupid or overthinking...
What I am doing is running an OpenMP application and specifying a list of cpu cores to run on with GOMP_CPU_AFFINITY. I want to make sure that each core is getting the same number of threads.
**UPDATE**
It seems that this code works, but only with glibc >= 2.6, and my machine has 2.5:
Code:
#define _GNU_SOURCE
#include <stdio.h>
#include <utmpx.h>
int main( void )
[Code].....
I have a program which is uses sigaction to register for a SIGIO signal (for incoming data on a fd) with an appropriate event handler. I also create a new detached thread 'B' that does some work with the received data. Normally the thread B runs properly. But when my event handler is called (because a there is new incoming data), after the event is handled, the thread B is not called immediately. There is a noticeable delay of the order of many seconds before it is scheduled again .During this delay, my program is doing nothing.
What am i doing wrong? Is there someway i can run thread B as soon as the event is handled (and assuming no other work is to be carried out)?
i created one thread in main(). I have while in thread function.
I want close the thread in main after some time. How can i close it.
Kernel: 2.6.24.2
System: Embedded System
I have a process and two threads running in it. Thread1 is my GUI-Thread (using FLTK) and Thread2 is running at the first 10 sec. after start.Now, I would like to make Thread2 "nicer" to Thread1, because otherwise GUI stucks sometimes. But I didn't find a solution.Is it possible to define the "niceness" of threads inside a process (to each other)? And if so, how do I have to do this?
I have to launch a new thread from my existing main program and pass data to it.
For now the data is simply a string value.
How I go about passing data to a new thread while it is running.
When I set the stack base address of the child thread using the POSIX library function "pthread_attr_setstackaddr()", I am unable to access the memory contents of its parent. The data-structures that are created on the HEAP of its parent using malloc() are either getting destroyed or unaccessible when moving to the context of the child thread. These data-structures are being passed as an argument to the child thread.Even if I make these variables global then also it is not working.pthread_attr_setstacksize(tattr, ...);stackbase = (void *) malloc(...);pthread_attr_setstackaddr(tattr, stackbase);But when I create the child thread without setting its stack base address using that pthread_attr_setstackaddr(), then it is able to access the parent's memory contents.
View 1 Replies View RelatedHow to get list of threads of a process using C code in Linux?
View 6 Replies View RelatedI have done some searching around the internet and this site, but I haven't found a good way to count the context switches on a thread in a c++ program I am running. I need to know if it get swapped off of a CPU for correct timing.
View 4 Replies View RelatedI have a timer thread, and when it expires, it sets a flag. The only problem is, if any higher priority thread comes in between, then the timer is not expired in real time.Thus i want to set a highest priority to my thread. Now, i know 2 algos, which can make my thread in real time are: SCHED_FIFO and SCHED_RR.
So, here are my queries: 1) Which scheduling algo is best suited for this purpose? 2) Is it guaranted to work in real time if i use that algo (you suggest in 1) and set the max_priority by getting the maximum settable priority for that particular algorithm using, int sched_get_priority_max(int policy);
I have created an error logger thread in my application using pthread_create(), I want this thread to have a lower priority than my application's priority so that the application would run properly. Is there an easy way to do this? I know that we can change priority for thread created with policies FIFO or RR, since I don't set the policy for my application, I don't know what to set for my thread.
View 4 Replies View RelatedI want to suspend/resume a thread. The library I am using is pthread.h.I am also running my application on linux.Is there any function in pthread. let me suspend a thread temporary?I have read a document in which it was mentioned thatthread does not support suspend/resume
View 4 Replies View RelatedI seem to only be able to set my stack size on my linux server to 15000. If I increase it to 20000 I get a Segmentation Fault. how I can get the linux OS to increase the stack size? Code: threadRet |= pthread_attr_setstacksize( &m_ThreadAttributes, 15000 );
View 8 Replies View RelatedI don't seem to find a conclusive answer to this one...."Is popen thread safe via pthreads?"
View 2 Replies View RelatedI am new to thread programming. I need to generate one thread in one process using posix thread. Which scheduling and priority do i need to use? I want to generate the thread with the lowest priority. As i know there are 3 scheduling policy available SCHED_FIFO, SCHED_RR or SCHED_OTHAR.
View 1 Replies View RelatedThis is a client server issue where the server creates a new thread for listening to a new client, now when the thread starts execution and during its execution the server needs to pass it an object of some X class, how's that to be done?
View 4 Replies View RelatedI am trying to pass an array to thread program. Its printing the val[0] value but its not printing value at val[1]. Can somebody help me with this problem.
Code:
#include <unistd.h>
#include <stdlib.h>
[code]....
Rather than get in hot (or even slightly-above-comfortable temperature) water for reviving a closed (ca. 2007) thread without moderator permission or acquaintance of the OP personally or by proxy, I'll post this alternate solution (approach?) along with one positive real-world example illustrating how mine is easier to write and is equally reliable, if not altogether better. The thread is here. Their solution:
Code:
if [ "$myfilesize" eq "0" ];then echo "$file: the file size is zero"; else echo "$file: the file size is NOT zero"; fi (and this hangs on the output of a stat -c %s command). "Hangs" is probably a most appropriate word. The two outputs, using two different stat options, the same file, and three marginally-different command-line syntaxes I just tried gave me these: First, using their approach, I got this:
Code:
tjsfa070929-094.jpg.error: the file size is NOT zero
Even though stat gave me this
Code:
>> stat -c %s $file
[Code]...
From where I sit, getting the file type string instead of an integer, which can be equally (if not often more) accurate, makes for an easier time of setting the conditional and, maybe only in terms of a few ticks, a faster script from start to finish. I think my method is better, and proven so to the limits of my knowledge and ability here in this OP.
I hope someone can help me with this. I need to call the same thread multiple times, but only run one thread at a time. So what I do is create the thread which runs then drops out. Run the main loop and after some time pthread_create the same thread again. So in pseudo code
[Code]...
I always presumed if I run a thread and it reaches with a pthread_exit, then the thread was destroyed? However I've found that after I've created the thread several 100 times the programme crashes? So can anyone advise how I call the same thread over and over?
Where can I get the source code of quick thread?
View 1 Replies View RelatedI want to know, is there any way to prevent the multi-thread process from crashing if some errors (say, segmentation faults) occur in one of its child threads? I've found pthread_sigmask() function, but that does not seem to work:
Code:
#include <stdio.h>
#include <unistd.h>
[code]...
I'm making a programm under OpenSuse 11.1I'm using SDL and ofcourse SDL_TTF.when i render with the SDL's TTF function under main(), i have no problems, but when i render under thread i have segmentation fault.There is not exist any typing or any competition (i'm using semaphores) but even if i try to render on a local SDL_Surface i'm having the Segmentation fault...
View 2 Replies View RelatedI'm wondering how python's thread & fork support is compared to perl? Which one is best option among Perl and Python
View 1 Replies View RelatedWhy the thread stack size can not be changed after calling pthread_attr_setstacksize & pthread_create in a dynamic library? Detail: I write a file thread_factory.c and plan to build it and produce a dynamic library (libthread_factory.so) In the thread_factory.c , there is a routine
[Code]....
And after this, there is application, it will call fct_thread_create(STACK_SIZE_256KB), and then call pthread_attr_getstacksize(), but the stack size return always be a fixed value 0xa01000. (I tried this on Fedora12) But if I build the application source code with the file thread_factory.c directly, the stack size return is right as my expect. I checked the source code of glibc about the routine pthread_create() as below:
[Code]....
I'm trying to create a separate thread for my program which basically polls using the read command. However this new thread seems to block the main thread, anyone know why this could happen.
In main I call this function pthread_create(&mainEventThread, NULL, GenericEventThread, NULL);
which calls
/*New threads start function */
void *GenericEventThread()
{
short int i, nError = -1;
[Code]...
I've used pthread_self to check that a new thread is being created, so why is the while loop in one thread blocking the main thread from running, I haven't used the join function anywhere in my code.
i have an application that launches several pthreads, i know that the default size used by Linux is 8Mb for each pthread. However i would like to optimize the total memory usage by my application by decreasing the default stack size of each pthread to the needed resources. My questions:
- Are there any rules to set the pthread stack size.
- How to compute the memory needed by each thread.
- Is the malloc call inside a thread counted from the stack size of the same pthread?
Well, I want to be able to run some Linux in a VM at my school (on WinXP systems), via a USB stick.Two problems:
- Computers are mediocre
- Will be on many of them
I tried portable virtualbox but it starts very slow and runs slow without the guest additions. It just doesn't work right.What I need is a quick, portable VM that starts up quick and runs decently; I'm not expecting all that much from a USB stick but at least smooth cursor movement.I would like one that allows me to save changes on the virtual HDD, as opposed to a LiveCD style VM.