![]() |
sig_atomic_t to avoid mutex/critical sections
On linux using pthreads, if I have a 2-bytes variable x shared by pthreads used only in the following ways:
(1) :
x=value;:
if (x==value) {do something (not with x)}:
other variable (not shared) = x;Is it correct to define it sig_atomic_t x; (no matter if 4 or 2 bytes) and AVOID to protect every instruction of kind (1) or (2) or (3) with pthread_mutex_lock()/trylock() before and pthread_mutex_unlock() after ? Can I be sure there is no race condition/unpredicted event/problem? In a few words: is it correct to speed up a software using sig_atomic_t data instead of mutexed data with the fundamental condition that data are as little as 2-4 bytes and are accessed only in the very simple way above? Thanks |
Re: sig_atomic_t to avoid mutex/critical sections
Quote:
This method is fine for doing something like quitting when a signal handler quits a flag which I have used it for in quite a few server processes I have written. |
| All times are GMT -5. The time now is 4:11 AM. |
Powered by vBulletin® Version 3.7.0, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Copyright ©2007 DaniWeb® LLC