Jump to content

sig_atomic_t to avoid mutex/critical sections

- - - - -

This topic has been archived. This means that you cannot reply to this topic.
1 reply to this topic

#1
mynickmynick

mynickmynick

    Newbie

  • Members
  • PipPip
  • 11 posts
On linux using pthreads, if I have a 2-bytes variable x , shared by pthreads and used only in the following ways:
(1)
x=value;
(2) or (separately)
if (x==value) {do something (not with x)}
(3) or (separately)
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

Edited by mynickmynick, 05 May 2008 - 06:58 AM.


#2
mynickmynick

mynickmynick

    Newbie

  • Members
  • PipPip
  • 11 posts
oops I had made a mistake but fortunately you allow here to redit

Edited by mynickmynick, 05 May 2008 - 06:59 AM.