Skip to content
Snippets Groups Projects
Commit c1e2b710 authored by Vassil Vassilev's avatar Vassil Vassilev
Browse files

Do not lock when setting up the arguments.

Should fix a regression in the test suite.
parent 8e9e04e7
No related branches found
No related tags found
No related merge requests found
......@@ -34,7 +34,6 @@
class TQSlot;
class TQConnection : public TVirtualQConnection, public TQObject {
protected:
TQSlot *fSlot = 0; // slot-method calling interface
void *fReceiver = 0; // ptr to object to which slot is applied
......@@ -46,6 +45,7 @@ protected:
void *GetSlotAddress() const;
CallFunc_t *LockSlot() const;
void UnLockSlot(TQSlot *) const;
CallFunc_t *GetSlotCallFunc() const;
TQConnection &operator=(const TQConnection &) = delete;
......@@ -61,13 +61,8 @@ protected:
template <typename T> void SetArgImpl(T arg)
{
CallFunc_t *func = LockSlot();
TQSlot *s = fSlot;
CallFunc_t *func = GetSlotCallFunc();
gInterpreter->CallFunc_SetArg(func, arg);
UnLockSlot(s);
}
virtual void SendSignal() override
......
......@@ -59,6 +59,7 @@ public:
Bool_t CheckSlot(Int_t nargs) const;
Long_t GetOffset() const { return fOffset; }
CallFunc_t *StartExecuting();
CallFunc_t *GetFunc() const { return fFunc; }
void EndExecuting();
const char *GetName() const {
......@@ -680,3 +681,7 @@ void TQConnection::UnLockSlot(TQSlot *s) const {
if (s->References() <= 0) delete s;
if (gInterpreterMutex) gInterpreterMutex->UnLock();
}
CallFunc_t* TQConnection::GetSlotCallFunc() const {
return fSlot->GetFunc();
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment