08-06-2006
Use pthread_mutex_timedlock(), sem_trywait() (in conjunction with sleep()) functions in a cycle and continue executing when all mutexes/semaphores are blocked by your thread.
10 More Discussions You Might Find Interesting
1. Programming
I've been wondering if I can make mutexes much easier to use in C++ with creative use of a locking class and variable scope, but I'm not sure if things happen in the order I want. Here's pseudocode for something that could use the class:
int someclass::getvalue()
{
int retval;
... (0 Replies)
Discussion started by: Corona688
0 Replies
2. Programming
As far as I can tell, the bash wait command waits for a logical "AND" of all the child processes.
Assuming I am coding in C:
(1) What is the function I would use to create multiple bash child process running perl?
(2) What is the function I would use to reinvent the bash wait command so I... (4 Replies)
Discussion started by: siegfried
4 Replies
3. Shell Programming and Scripting
:cool:
I need to execute a shell script to do the following:
cat a file
run two back ground processes using the first two values from the file
wait till those background processes finish
run two more background processes using the next two values from the file
wait till those background... (1 Reply)
Discussion started by: halo98
1 Replies
4. Shell Programming and Scripting
Hi Friends,
If i execute this command it comes back with 300 lines:
ipcs|grep cerebrus >>> i would like to clear the semaphores but ipcrm can remove one id at a time. is there a quicker way of removing semaphores maybe using awk?
Regards, (1 Reply)
Discussion started by: kekanap
1 Replies
5. Programming
been searching around on how to use an up and down function with semaphores but i can't find an example. i looked into using: "semop" but i have no idea how to use it. I have been able to declared the semaphores using semget and initializing them using semctl. (7 Replies)
Discussion started by: ddx08
7 Replies
6. Shell Programming and Scripting
Did not use 'wait' yet.
How I understand by now the wait works only for child processes, started background.
Is there any other way to watch completion of any, not related process (at least, a process, owned by the same user?)
I need to start a background process, witch will be waiting... (2 Replies)
Discussion started by: alex_5161
2 Replies
7. UNIX for Dummies Questions & Answers
I am trying to understand the exact difference between condition variables and mutexes in thread synchronization ?. I know mutex will control the thread access to shared data and condition variables will be useful for waiting for certain event or condition to occur . But I couldn't understand
why... (2 Replies)
Discussion started by: siddaonline
2 Replies
8. Programming
What is the difference between mutex_lock and pthread_mutex_lock ? Should I use both when using binary semaphores.
Also, what is the difference between using a binary semaphore and a counting semaphore where you wait on the condition variable ? (1 Reply)
Discussion started by: joey
1 Replies
9. Shell Programming and Scripting
Hi Forum.
I need a script to wait for all multiple trigger files to be present or else go to sleep for 10 seconds (Number of trigger files can vary). I tried to search on the forum but was not able to find a solution.
I found this code on this forum but it's not working as expected:
for... (6 Replies)
Discussion started by: pchang
6 Replies
10. Shell Programming and Scripting
Hi,
I am facing a strange issue,
when i call a script from my while loop in background it doesnt go in background, despite the wait i put below the whil loop it goes forward even before the process put in background is completed.
cat abc.txt | while read -u4 line
do
#if line contains #... (2 Replies)
Discussion started by: mihirvora16
2 Replies
LEARN ABOUT OSX
sem_trywait
SEM_WAIT(2) BSD System Calls Manual SEM_WAIT(2)
NAME
sem_trywait, sem_wait -- lock a semaphore
SYNOPSIS
#include <semaphore.h>
int
sem_trywait(sem_t *sem);
int
sem_wait(sem_t *sem);
DESCRIPTION
The semaphore referenced by sem is locked. When calling sem_wait(), if the semaphore's value is zero, the calling thread will block until
the lock is acquired or until the call is interrupted by a signal. Alternatively, the sem_trywait() function will fail if the semaphore is
already locked, rather than blocking on the semaphore.
If successful (the lock was acquired), sem_wait() and sem_trywait() will return 0. Otherwise, -1 is returned and errno is set, and the state
of the semaphore is unchanged.
ERRORS
sem_wait() and sem_trywait() succeed unless:
[EAGAIN] The semaphore is already locked.
[EDEADLK] A deadlock was detected.
[EINTR] The call was interrupted by a signal.
[EINVAL] sem is not a valid semaphore descriptor.
NOTES
Applications may encounter a priority inversion while using semaphores. When a thread is waiting on a semaphore which is about to be posted
by a lower-priority thread and the lower-priority thread is preempted by another thread (of medium priority), a priority inversion has
occured, and the higher-priority thread will be blocked for an unlimited time period. Programmers using the realtime functionality of the
system should take care to avoid priority inversions.
SEE ALSO
sem_open(2), sem_post(2), semctl(2), semget(2), semop(2)
HISTORY
sem_wait() and sem_trywait() are specified in the POSIX Realtime Extension (1003.1b-1993/1003.1i-1995).
Darwin June 8, 2000 Darwin