From: Mauro Carvalho Chehab Date: Thu, 9 May 2013 16:11:26 +0000 (-0300) Subject: ras-events: open database on each thread X-Git-Tag: v0.3.0~39 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=47bae23b6fba58855b8ddb8371db26c129e9428a;p=users%2Fmchehab%2Frasdaemon.git ras-events: open database on each thread sqlite3 is only able to prevent race issues between different threads if each thread opens its own connection to the database. Signed-off-by: Mauro Carvalho Chehab --- diff --git a/ras-events.c b/ras-events.c index 5a6cdfe..301d38d 100644 --- a/ras-events.c +++ b/ras-events.c @@ -342,7 +342,9 @@ static void *handle_ras_events_cpu(void *priv) return NULL; } -// printf("Listening to events on cpu %d\n", pdata->cpu); + printf("Listening to events on cpu %d\n", pdata->cpu); + if (pdata->ras->record_events) + ras_mc_event_opendb(pdata->ras); read_ras_event(fd, pdata, kbuf, page); @@ -468,9 +470,7 @@ int handle_ras_events(int record_events) ras->pevent = pevent; ras->page_size = page_size; - - if (record_events) - ras_mc_event_opendb(ras); + ras->record_events = record_events; pevent_register_event_handler(pevent, -1, "ras", "mc_event", ras_mc_event_handler, ras); diff --git a/ras-events.h b/ras-events.h index 5506d1d..6b081ed 100644 --- a/ras-events.h +++ b/ras-events.h @@ -33,9 +33,11 @@ struct ras_events { struct pevent *pevent; int page_size; - /* For timestamp */ + /* Booleans */ unsigned use_uptime: 1; + unsigned record_events: 1; + /* For timestamp */ time_t uptime_diff; /* For ras-record */ diff --git a/ras-record.c b/ras-record.c index 752de46..eebfc8d 100644 --- a/ras-record.c +++ b/ras-record.c @@ -103,6 +103,8 @@ int ras_mc_event_opendb(struct ras_events *ras) char sql[1024]; struct sqlite3_priv *priv; + printf("Calling %s()\n", __FUNCTION__); + ras->db_priv = NULL; priv = calloc(1, sizeof(*priv));