Fixed MXS - 165: Concurrency issue while incrementing sessions in
qlafilter
This commit is contained in:
@ -50,6 +50,7 @@
|
|||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <regex.h>
|
#include <regex.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <atomic.h>
|
||||||
|
|
||||||
/** Defined in log_manager.cc */
|
/** Defined in log_manager.cc */
|
||||||
extern int lm_enabled_logfiles_bitmask;
|
extern int lm_enabled_logfiles_bitmask;
|
||||||
@ -304,7 +305,9 @@ char *remote, *userName;
|
|||||||
sprintf(my_session->filename, "%s.%d",
|
sprintf(my_session->filename, "%s.%d",
|
||||||
my_instance->filebase,
|
my_instance->filebase,
|
||||||
my_instance->sessions);
|
my_instance->sessions);
|
||||||
my_instance->sessions++;
|
|
||||||
|
// Multiple sessions can try to update my_instance->sessions simultaneously
|
||||||
|
atomic_add(&(my_instance->sessions), 1);
|
||||||
|
|
||||||
if (my_session->active)
|
if (my_session->active)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user