Stuck in pthread_cond_signal()


 
Thread Tools Search this Thread
Operating Systems Linux Stuck in pthread_cond_signal()
# 1  
Old 02-10-2011
Stuck in pthread_cond_signal()

I am developing a multi-threaded library that helps the transformation of messages between threads in different processes using shared memory.

I am using the pthreads condition facility in order to synchronize access to the shared memory slots through which the messages are passed.

My test program got stuck. Obviously, most of the threads were stuck in the call to pthread_cond_wait(), waiting for a shared memory slot to become vacant.
However, what stuck the program was one of the threads who got stuck in
the call to pthread_cond_signal().
Obviously, since he got stuck there, none of the other threads awoke and consequently, the entire test program got stuck.

I will also mention that I am using the PTHREAD_PROCESS_SHARED attribute for the condition variable.

I am running on Ubuntu Linux 10.04.

Has anybody encountered a situation where pthread_cond_signal() is stuck?
Any idea about the reasons for this situation?

Thanks.
# 2  
Old 02-10-2011
Quote:
Has anybody encountered a situation where pthread_cond_signal() is stuck?
Sure. It is a common occurrence. Usually due to invalid assumptions regarding pthreads.

However if you want us to help you, you need to show us your code or, preferably, a short working example which demonstrates the problem.
# 3  
Old 02-13-2011
Thank you for responding.
Producing the code for the forum would not be possible, if only because it is a part of a complicated project. I don't currently have a short working example.

My "waiter" code looks like:

Code:
pthread_mutex_lock(pWaiter->getMutex());
while (!pWaiter->getFlag())
pthread_cond_wait(pWaiter->getCond(), pWaiter->getMutex());
pthread_mutex_unlock(pWaiter->getMutex());

The "waker" side looks like:

Code:
pthread_mutex_lock(pWaitForRequest->getMutex());
pWaitForRequest->setFlag(true);
pthread_cond_signal(pWaitForRequest->getCond());
pthread_mutex_unlock(pWaitForRequest->getMutex());

Could someone who has experienced such a problem can suggest typical reeasons why the pthread_cond_signal() gets stuck in such a usage.

Thanks.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Debian

Stuck in BIOS

okay,i made a grave mistake in installing the base bare bones install of debian. here i have edited this from the original. this morning when i got home from work i did some searching and then just shut the system down via the mechanical off on switch. waited a few minutes and then restarted... (0 Replies)
Discussion started by: cowLips
0 Replies

2. AIX

mget is stuck

Hi, below are the commands I use to get many gif files from /usr/local/images directory, the command just getting stuck at mget, nothing is moving cd /usr/local/images binary mget *.gif:wall: close quit (3 Replies)
Discussion started by: dateez
3 Replies

3. UNIX for Dummies Questions & Answers

Undefined reference to `pthread_cond_signal@GLIBC_2.3.2

When i try to make my c project i am getting an error message like this : ../../../lib/linux/libxml.so: undefined reference to `pthread_cond_signal@GLIBC_2.3.2' Please help me in resolving this. (0 Replies)
Discussion started by: dhivyam
0 Replies

4. Homework & Coursework Questions

stuck on assignment

I was given this to do, Write a Shell script to automatically check that a specified user is logged in to the computer. The program should allow the person running the script to specify the name of the user to be checked, the frequency in seconds at which the script should check. If a... (1 Reply)
Discussion started by: operator
1 Replies

5. Shell Programming and Scripting

I am stuck in my script

Hi All I have script that find 777 dir with specific extension like .php .Now after finding all 777 directory i will place in httpd.conf using a directory directive ,Now i was not do that,if directory entry exitst in httpd.conf then script ignor it dont show me at stdout else if it dont find... (2 Replies)
Discussion started by: aliahsan81
2 Replies

6. Shell Programming and Scripting

help! im stuck..

I want to search for the line with the group name and add the user into the group. The file format is the same as /etc/group The code i wrote is egrep "^$newGID" $group >/dev/null FS=":" oldData=awk -F: '{print $3}' newData= "$oldData,$newUser" sed -n $4/$newData $group but a friend... (1 Reply)
Discussion started by: cherrywinter
1 Replies

7. UNIX for Dummies Questions & Answers

stuck with a script

Hi There I am pretty new to UNIX and have only been using it from a basic point of view,I now want to start using it and learning more , have got a whole lot of books and documentation from the web and am slowly learning.I have written a get script in windows :- lcd E:\MAIN\PRO\FILES\MAINDB... (1 Reply)
Discussion started by: FOCKER
1 Replies

8. Programming

I'm stuck :(

Suppose that I have some data: 12,30 12,45 2,3 7,8 3,9 30, 8 45,54 56,65 Where (a,b) indicates that a is connected to b. I want to get all connected nodes to one point. For instance, the output of the above example should be something like: Group 1 2,3 3,9 Group 2 12,30 12,45... (4 Replies)
Discussion started by: Legend986
4 Replies

9. UNIX for Dummies Questions & Answers

stuck and confused

#!/bin/bash echo $1 | cat - $2 >> /tmp/$$ && mv /tmp/$$ $2 im trying to get the first argument to go in the middle of the second argument which is a file, anyone any ideas. i have only managed to get it to go on the end or the front. been fiddling about with wc -l, i get the number of lines... (5 Replies)
Discussion started by: iago
5 Replies

10. UNIX for Advanced & Expert Users

stuck....!

I have been busy reading away on devices and filesystems and I am stuck on a particular subject matter.. I'm not understanding the concept behind mknod mkfifo makedev or related commands.. can anyone shed some light on the subject.! any feedback welcome! moxxx68 (0 Replies)
Discussion started by: moxxx68
0 Replies
Login or Register to Ask a Question