Sponsored Content
Top Forums Programming Can Mutex be replaced with anything? Post 302383364 by fpmurphy on Tuesday 29th of December 2009 11:11:28 AM
Old 12-29-2009
Quote:
If I'm reading it right, an interlocked variable looks a lot like a linux futex
You are right. But there are some interesting differences.

A futex (fast userspace mutex) is essentially a userspace 32-bit or 64-bit address (lock) located in a shared memory region together with a matching kernel wait queue (futex queue). In the noncontended case, a lock can be acquired/released from userspace without having to enter the kernel. In the contended case, the kernel gets involved.

Implementation-wise, futexes are closer to slim reader/writer (SRW) locks than to interlocked variables.
 

10 More Discussions You Might Find Interesting

1. Programming

Threads and Mutex

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

mutex

Can anyone explain me what mutexes are in multithreading environment? (2 Replies)
Discussion started by: sagar
2 Replies

3. Shell Programming and Scripting

mutex in shell programing

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

How to handle mutex lock?

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

difference between Mutex and semaphores

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

what is diff b/w semaphore and mutex

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

Mutex in Perl

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

Mutex will not work

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

Mutex lock question

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

pthread and mutex question

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
sem_wait(2)							System Calls Manual						       sem_wait(2)

NAME
sem_wait, sem_trywait - lock a POSIX semaphore SYNOPSIS
DESCRIPTION
is used to lock a semaphore. The calling thread will not return from its call to until one of the following events occur: it successfully obtains a lock on the semaphore; it is interrupted by a signal or an error condition occurs. is used to lock a semaphore, if it is available. The value of the semaphore sem is checked at some unspecified time during the call. If the semaphore is available at the time its value is checked, the calling thread will atomically, with respect to the checking of the value, lock the semaphore. The thread will now own a lock on the semaphore; the call will return successfully. If the semaphore is unavailable at the time its value is checked, then the call returns -1 with errno set to EAGAIN. If the specified semaphore referred to by sem is a named semaphore, then this semaphore must have been opened by the calling process with The calling process must have both read and write permissions on the semaphore to perform these operations. The semaphore will be locked upon successful return and will stay locked until it is explicitly released by a call to To use this function, link in the realtime library by specifying on the compiler or linker command line. EXAMPLES
The following call to will lock the semaphore sem. The following call to will lock the semaphore sem, if it is available. RETURN VALUE
A successful call to will return 0 and the calling thread will then own a lock on the semaphore. Otherwise, the call to will return -1 with errno set to the appropriate value of the error condition. A successful call to will return 0, if the semaphore was available and the calling thread was able to lock the semaphore. Otherwise, the call to will return -1 with errno set to the appropriate value of the error condition. ERRORS
and fail and do not perform the requested operation if any of the following conditions are encountered: [EPERM] The calling process does not have the privileges necessary to lock the semaphore. [EAGAIN] The semaphore was not available and hence could not be locked by This error condition only occurs in [EINVAL] The argument sem does not refer to a valid semaphore. [EINTR] The function was interrupted by a signal SEE ALSO
sem_post(2), <semaphore.h>. STANDARDS CONFORMANCE
sem_wait(2)
All times are GMT -4. The time now is 04:27 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy