[Issue#] TWEB-427
[Feature] ThreadLocalVariable should not call Assert
when pthread_key_create fails
[Cause] Process gets SIGABORT when ThreadLocalVariable fails.
[Solution] Replace with exception, allow to catch it.
[Verification] Run iframes.wgt widget from wrt-extra repository.
WebProcess should not fail when counter in widget hits ~160.
Verification requires patch from plugins_common where this excepion is handled.
Change-Id: I7205afcaed091732f0233500e58d596fed1bdf4f
public:
DECLARE_EXCEPTION_TYPE(DPL::Exception, Base)
DECLARE_EXCEPTION_TYPE(Base, NullReference)
+ DECLARE_EXCEPTION_TYPE(Base, KeyCreateFailed)
};
private:
ThreadLocalVariable()
{
int result = pthread_key_create(&m_key, &InternalDestroy);
-
- Assert(result == 0 &&
- "Failed to allocate thread local variable");
+ if (result != 0) {
+ ThrowMsg(typename Exception::KeyCreateFailed,
+ "Failed to allocate thread local variable: " << result);
+ }
}
~ThreadLocalVariable()