temporary disable Ed25519 per thread

This commit is contained in:
orignal 2015-11-27 15:46:30 -05:00
parent 7bfb499549
commit 430368de97

View File

@ -421,26 +421,13 @@ namespace crypto
EDDSAPoint Bi16Carry; // Bi16[64][0] EDDSAPoint Bi16Carry; // Bi16[64][0]
}; };
static std::shared_ptr<Ed25519> g_Ed25519; static std::unique_ptr<Ed25519> g_Ed25519;
#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 8)) // gcc 4.8 and higer std::unique_ptr<Ed25519>& GetEd25519 ()
static thread_local std::shared_ptr<Ed25519> g_Ed25519ThisThread;
#else
static std::shared_ptr<Ed25519> g_Ed25519ThisThread;
#endif
std::shared_ptr<Ed25519>& GetEd25519 ()
{ {
// TODO: implement it better if (!g_Ed25519)
if (!g_Ed25519ThisThread) g_Ed25519.reset (new Ed25519());
{
if (!g_Ed25519) return g_Ed25519;
{
g_Ed25519 = std::make_shared<Ed25519>();
g_Ed25519ThisThread = g_Ed25519;
}
else
g_Ed25519ThisThread = std::make_shared<Ed25519>(*g_Ed25519);
}
return g_Ed25519ThisThread;
} }