Bugfix: multithread-safety for gsi::Proxy (required for the tiling processor use case).

This commit is contained in:
Matthias Koefferlein
2018-07-06 00:56:34 +02:00
parent 803a29037a
commit 2b64c4bf82
3 changed files with 87 additions and 36 deletions
+6
View File
@@ -31,6 +31,8 @@
#include "dbSaveLayoutOptions.h"
#include <cstdlib>
#include <QMutex>
#include <QMutexLocker>
unsigned int get_rand()
{
@@ -400,6 +402,8 @@ public:
void add (double x) const
{
static QMutex lock;
QMutexLocker locker (&lock);
*mp_sum += x;
*mp_n += 1;
}
@@ -419,6 +423,8 @@ gsi::Class<MyTilingOutputReceiver> decl_MyTilingOutputReceiver (gsi::dbdecl_Tile
);
// Multithreaded, access to _rec()
// This will mainly test the ability of gsi::Proxy to manage references
// in a multithreaded case.
TEST(5)
{
db::Layout ly1;