01-15-2010
Quote:
Originally Posted by rvan
To avoid race condition, instead of using mutex, semaphore, spinlock etc.... Is there any other mechanism by which we can avoid race condition in an multi-threading environment.
Yes. For instance on SMP machine, you can use so-called "lock free algorithms". There are no standard library for those algorithms yet, and they are highly HW dependent. So unless you have an absolute need for performance, I would recommend against it and stick to classical synchronization devices like mutex, spinlock etc.
Cheers,
Loïc.
10 More Discussions You Might Find Interesting
1. Programming
Hi all,
I am working in a UNIX/C environment. I would like to understand more about MUTEX and Threads. Can someone explain me these
concepts and how they are related.
Vijay (2 Replies)
Discussion started by: vthasan
2 Replies
2. UNIX for Dummies Questions & Answers
Can anyone explain me what mutexes are in
multithreading environment? (2 Replies)
Discussion started by: sagar
2 Replies
3. Shell Programming and Scripting
A shell in crontab per 5 min write a file
B shell in crontab per 6 min read a file
how to lock the share file a ;avioid confilict in write and read?
Thx : -) (1 Reply)
Discussion started by: zz_xm
1 Replies
4. Programming
Hi, I have two tasks 'Read' and 'Write' which reads and writes on a file "abc.txt" respectively.
Now I need to restrict the Write operation on the file while Read is going on, But can allow two Reads at a time.
ie. two Reads can happen simultaneously, but Write can't happen at Read is going on.
... (3 Replies)
Discussion started by: satheeshalle
3 Replies
5. Programming
Hi,
can someone explain me the difference between mutex and semaphores?
Thanks (1 Reply)
Discussion started by: rvan
1 Replies
6. UNIX for Dummies Questions & Answers
can u tell me what is the exact difference b/w mutex and semaphore
and what is the diff b/w counting semaphore and binary semaphore
amit (1 Reply)
Discussion started by: amitpansuria
1 Replies
7. Shell Programming and Scripting
Hello Everyone,
I just joined this forum and this is my first post.
I would like to know how can I impliment basic read/write locks in perl. I have a database (file) which can be accessed simultaneously but has to be locked while writing.
If there is no such support in perl, my next... (6 Replies)
Discussion started by: superuser84
6 Replies
8. Programming
I am trying to use mutex in my multi-tread project, but they don't seem to work.
I have created a simple demonstration of the problem. This is NOT how I would use a mutex, only a demonstration of the problem:
#include <stdio.h>
#include <pthread.h>
int main()
{
int val;
... (3 Replies)
Discussion started by: ChrisWilliams
3 Replies
9. Programming
Hi all,
I have a scenario where I need to use the mutex locks. The mutex locks are working fine, but sometimes I am getting into the dead lock situation.
Below is the summary of my code :
MUTEX LOCK
performTask();
MUTEX UNLOCK.
In some cases I get into the situation where... (2 Replies)
Discussion started by: cjjoy
2 Replies
10. Programming
Hello,
I have got some issue with the struct variable with passed arguments
the variable in the sturct is only recognize the last value their assigned to
I'm pretty confused why the mutex didn't work out
here is my program:
#include<stdio.h>
#include<pthread.h>
pthread_mutex_t lock... (3 Replies)
Discussion started by: michael23
3 Replies
LEARN ABOUT HPUX
msem_unlock
msem_unlock(2) System Calls Manual msem_unlock(2)
NAME
msem_unlock - unlock a semaphore
SYNOPSIS
DESCRIPTION
unlocks a binary semaphore.
sem points to an structure that specifies the semaphore to be unlocked.
If the condition argument is zero, the semaphore will be unlocked, whether or not any other processes are currently attempting to lock it.
If the condition argument is and some other process is waiting to lock the semaphore or the implementation cannot reliably determine
whether some process is waiting to lock the semaphore, the semaphore is unlocked by the calling process. If the condition argument is and
no process is waiting to lock the semaphore, the semaphore is not unlocked and an error is returned.
All calls to and by multiple processes sharing a common structure behave as if the calls were serialized.
If the structure contains any value not resulting from a call to followed by a (possibly empty) sequence of calls to and the results are
undefined. The address of an uniquely identifies the semaphore. If the structure contains any value copied from a structure at a differ-
ent address, the result is undefined.
IMPLEMENTATION NOTES
The system attempts to ignore or recover from invalid values placed in the structure, but this is not guaranteed for all cases.
RETURN VALUE
Upon success, returns zero; otherwise, it returns -1 and sets to indicate the error.
ERRORS
fails if any of the following conditions are encountered:
[EAGAIN] was specified and there were no waiters.
[EINVAL] sem points to an structure that has been removed, or condition is invalid.
[EFAULT] sem is an invalid pointer.
AUTHOR
was developed by HP and OSF.
SEE ALSO
msem_init(2), msem_lock(2), msem_remove(2), mman(5).
STANDARDS CONFORMANCE
msem_unlock(2)