Fix TmThreadsUnsetFlag not unsetting flag if __sync_fetch_and_nand was used.

remotes/origin/master-1.1.x
Victor Julien 15 years ago
parent fcff1ce7f4
commit 9634389b9e

@ -51,7 +51,7 @@ typedef struct ThreadVars_ {
char *name;
char *thread_group_name;
SC_ATOMIC_DECLARE(unsigned short, flags);
SC_ATOMIC_DECLARE(unsigned char, flags);
/** aof(action on failure) determines what should be done with the thread
when it encounters certain conditions like failures */

@ -75,7 +75,7 @@ uint8_t tv_aof = THV_RESTART_THREAD;
* \retval 0 flag is not set
*/
int TmThreadsCheckFlag(ThreadVars *tv, uint8_t flag) {
return (SC_ATOMIC_GET(tv->flags) & flag)? 1 : 0;
return ((SC_ATOMIC_GET(tv->flags) & flag)? 1 : 0);
}
/**
@ -89,7 +89,7 @@ void TmThreadsSetFlag(ThreadVars *tv, uint8_t flag) {
* \brief Unset a thread flag
*/
void TmThreadsUnsetFlag(ThreadVars *tv, uint8_t flag) {
SC_ATOMIC_NAND(tv->flags, flag);
SC_ATOMIC_AND(tv->flags, ~flag);
}
/* 1 slot functions */

Loading…
Cancel
Save