diff options
author | Alexander Golubev <[email protected]> | 2024-03-12 01:19:14 +0300 |
---|---|---|
committer | Alexander Golubev <[email protected]> | 2024-03-14 00:11:47 +0300 |
commit | f7642b09c9e61f71e434aeb0ceb330d2ccaa25db (patch) | |
tree | 24caf3ca34bc91f4c3ea20b8fc436fdd71c44925 /src/kernel/qobject.cpp | |
parent | fa4475f36d6404a70d760ca95ac6a986a8846a3f (diff) | |
download | tqt3-f7642b09c9e61f71e434aeb0ceb330d2ccaa25db.tar.gz tqt3-f7642b09c9e61f71e434aeb0ceb330d2ccaa25db.zip |
TQT_THREAD_SUPPORT->!TQT_NO_THREAD: migrate sources
Signed-off-by: Alexander Golubev <[email protected]>
Diffstat (limited to 'src/kernel/qobject.cpp')
-rw-r--r-- | src/kernel/qobject.cpp | 164 |
1 files changed, 79 insertions, 85 deletions
diff --git a/src/kernel/qobject.cpp b/src/kernel/qobject.cpp index 1e6d55836..09a2b6031 100644 --- a/src/kernel/qobject.cpp +++ b/src/kernel/qobject.cpp @@ -52,7 +52,7 @@ // TQStyleControlElementData #include "ntqstyle.h" -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD #include "ntqmutex.h" #include <private/qmutexpool_p.h> #include "ntqthread.h" @@ -105,7 +105,7 @@ class TQObjectPrivate { public: #ifndef TQT_NO_USERDATA TQObjectPrivate( uint s ) : TQPtrVector<TQObjectUserData>(s) { -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD ownThread = NULL; disableThreadPostedEvents = false; #endif @@ -118,7 +118,7 @@ public: delete controlElementDataPrivate; } #endif -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD TQThread* ownThread; TQMutex* senderObjectListMutex; TQMutex* childObjectListMutex; @@ -142,16 +142,14 @@ TQStyleControlElementDataPrivate* TQObject::controlElementDataPrivateObject() { return d->controlElementDataPrivate; } -#if defined(TQT_THREAD_SUPPORT) +#ifndef TQT_NO_THREAD void TQObject::moveToThread_helper(TQThread *targetThread) { TQEvent e(TQEvent::ThreadChange); TQApplication::sendEvent(this, &e); -#ifdef TQT_THREAD_SUPPORT TQMutexLocker locker( d->childObjectListMutex ); -#endif // TQT_THREAD_SUPPORT if (childObjects) { TQObject *child; @@ -167,9 +165,7 @@ void TQObject::setThreadObject_helper(TQThread *targetThread) { d->ownThread = targetThread; -#ifdef TQT_THREAD_SUPPORT TQMutexLocker locker( d->childObjectListMutex ); -#endif // TQT_THREAD_SUPPORT if (childObjects) { TQObject *child; @@ -197,9 +193,7 @@ void TQObject::setThreadObject_helper(TQThread *targetThread) */ void TQObject::moveToThread(TQThread *targetThread) { -#ifdef TQT_THREAD_SUPPORT TQMutexLocker locker( TQApplication::tqt_mutex ); -#endif // TQT_THREAD_SUPPORT if (parentObj) { #if defined(QT_DEBUG) @@ -252,7 +246,7 @@ void TQObject::disableThreadPostedEvents(bool disable) { d->disableThreadPostedEvents = disable; } -#endif // defined(TQT_THREAD_SUPPORT) +#endif // TQT_NO_THREAD) class TQSenderObjectList : public TQObjectList, public TQShared { @@ -262,19 +256,19 @@ class TQSenderObjectList : public TQObjectList, public TQShared public: TQObject *currentSender; -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD TQMutex *listMutex; #endif }; TQSenderObjectList::TQSenderObjectList() : currentSender( 0 ) { -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD listMutex = new TQMutex( TRUE ); #endif } TQSenderObjectList::~TQSenderObjectList() { -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD delete listMutex; #endif } @@ -509,7 +503,7 @@ void *tqt_find_obj_child( TQObject *parent, const char *type, const char *name ) return 0; } -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD /*! Returns a pointer to the TQThread* associated with @@ -548,12 +542,12 @@ static void qt_spy_signal( TQObject* sender, int signal, TQUObject* o ) s.sprintf( "%s_%s", mo->className(), sigData->name ); int slot = tqt_preliminary_signal_spy->metaObject()->findSlot( s, TRUE ); if ( slot >= 0 ) { -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD // protect access to qt_spy_signal_sender void * const address = &qt_spy_signal_sender; TQMutexLocker locker( tqt_global_mutexpool ? tqt_global_mutexpool->get( address ) : 0 ); -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD TQObject* old_sender = qt_spy_signal_sender; qt_spy_signal_sender = sender; @@ -572,7 +566,7 @@ static void qt_spy_signal( TQObject* sender, int signal, TQUObject* o ) static TQObjectList* object_trees = 0; -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD static TQMutex *obj_trees_mutex = 0; #endif @@ -580,7 +574,7 @@ static void cleanup_object_trees() { delete object_trees; object_trees = 0; -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD delete obj_trees_mutex; obj_trees_mutex = 0; #endif @@ -594,7 +588,7 @@ static void ensure_object_trees() static void insert_tree( TQObject* obj ) { -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD if ( !obj_trees_mutex ) obj_trees_mutex = new TQMutex(); TQMutexLocker locker( obj_trees_mutex ); @@ -607,7 +601,7 @@ static void insert_tree( TQObject* obj ) static void remove_tree( TQObject* obj ) { if ( object_trees ) { -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD TQMutexLocker locker( obj_trees_mutex ); #endif object_trees->removeRef( obj ); @@ -685,7 +679,7 @@ TQObject::TQObject( TQObject *parent, const char *name ) d = new TQObjectPrivate(0); } -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD d->ownThread = TQThread::currentThreadObject(); d->senderObjectListMutex = new TQMutex( TRUE ); d->childObjectListMutex = new TQMutex( TRUE ); @@ -777,7 +771,7 @@ TQObject::~TQObject() while( (c=cit.current()) ) { // for each connected slot... ++cit; if ( (obj=c->object()) ) { -#ifdef TQT_THREAD_SUPPORT +#ifndef TQ_NO_THREAD TQMutexLocker locker( obj->senderObjects->listMutex ); #endif removeObjFromList( obj->senderObjects, this ); @@ -804,10 +798,10 @@ TQObject::~TQObject() delete childObjects; } -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD delete d->childObjectListMutex; delete d->senderObjectListMutex; -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD delete d; } @@ -1099,25 +1093,25 @@ bool TQObject::event( TQEvent *e ) { TQMetaCallEvent* metaEvent = dynamic_cast<TQMetaCallEvent*>(e); if (metaEvent) { -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD if ((d->disableThreadPostedEvents) || (d->ownThread == TQThread::currentThreadObject())) -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD { TQSenderObjectList* sol; TQObject* oldSender = 0; sol = senderObjects; -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD sol->listMutex->lock(); -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD if ( sol ) { oldSender = sol->currentSender; sol->ref(); sol->currentSender = metaEvent->sender(); } -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD sol->listMutex->unlock(); -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD TQUObject *o = metaEvent->data(); if (metaEvent->type() == TQMetaCallEvent::MetaCallEmit) { tqt_emit( metaEvent->id(), o ); @@ -1125,28 +1119,28 @@ bool TQObject::event( TQEvent *e ) if (metaEvent->type() == TQMetaCallEvent::MetaCallInvoke) { tqt_invoke( metaEvent->id(), o ); } -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD sol->listMutex->lock(); -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD if (sol ) { sol->currentSender = oldSender; if ( sol->deref() ) { -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD sol->listMutex->unlock(); -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD delete sol; sol = NULL; } } -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD if (sol) sol->listMutex->unlock(); -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD } -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD else { tqWarning("TQObject: Ignoring metacall event from non-owning thread"); } -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD destroyDeepCopiedTQUObjectArray(metaEvent->data()); } } @@ -1648,9 +1642,9 @@ TQConnectionList *TQObject::receivers( int signal ) const void TQObject::insertChild( TQObject *obj ) { -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD TQMutexLocker locker( d->childObjectListMutex ); -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD if ( obj->isTree ) { remove_tree( obj ); @@ -1694,9 +1688,9 @@ void TQObject::insertChild( TQObject *obj ) void TQObject::removeChild( TQObject *obj ) { -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD TQMutexLocker locker( d->childObjectListMutex ); -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD if ( childObjects && childObjects->removeRef(obj) ) { obj->parentObj = 0; @@ -1934,12 +1928,12 @@ const TQObject *TQObject::sender() { #ifndef TQT_NO_PRELIMINARY_SIGNAL_SPY if ( this == tqt_preliminary_signal_spy ) { -# ifdef TQT_THREAD_SUPPORT +# ifndef TQT_NO_THREAD // protect access to qt_spy_signal_sender void * const address = &qt_spy_signal_sender; TQMutexLocker locker( tqt_global_mutexpool ? tqt_global_mutexpool->get( address ) : 0 ); -# endif // TQT_THREAD_SUPPORT +# endif // TQT_NO_THREAD return qt_spy_signal_sender; } #endif @@ -2282,24 +2276,24 @@ void TQObject::connectInternal( const TQObject *sender, int signal_index, const TQ_CHECK_PTR( c ); clist->append( c ); if ( !r->senderObjects ) { // create list of senders -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD r->d->senderObjectListMutex->lock(); -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD r->senderObjects = new TQSenderObjectList; -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD r->senderObjects->listMutex->lock(); r->d->senderObjectListMutex->unlock(); -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD } else { -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD r->senderObjects->listMutex->lock(); -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD } r->senderObjects->append( s ); // add sender to list -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD r->senderObjects->listMutex->unlock(); -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD } @@ -2505,25 +2499,25 @@ bool TQObject::disconnectInternal( const TQObject *sender, int signal_index, c = clist->first(); while ( c ) { // for all receivers... if ( r == 0 ) { // remove all receivers -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD if (c->object()->senderObjects) c->object()->senderObjects->listMutex->lock(); -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD removeObjFromList( c->object()->senderObjects, s ); -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD if (c->object()->senderObjects) c->object()->senderObjects->listMutex->unlock(); -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD success = TRUE; c = clist->next(); } else if ( r == c->object() && ( (member_index == -1) || ((member_index == c->member()) && (c->memberType() == membcode)) ) ) { -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD if (c->object()->senderObjects) c->object()->senderObjects->listMutex->lock(); -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD removeObjFromList( c->object()->senderObjects, s, TRUE ); -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD if (c->object()->senderObjects) c->object()->senderObjects->listMutex->unlock(); -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD success = TRUE; clist->remove(); c = clist->current(); @@ -2542,25 +2536,25 @@ bool TQObject::disconnectInternal( const TQObject *sender, int signal_index, c = clist->first(); while ( c ) { // for all receivers... if ( r == 0 ) { // remove all receivers -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD if (c->object()->senderObjects) c->object()->senderObjects->listMutex->lock(); -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD removeObjFromList( c->object()->senderObjects, s, TRUE ); -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD if (c->object()->senderObjects) c->object()->senderObjects->listMutex->unlock(); -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD success = TRUE; c = clist->next(); } else if ( r == c->object() && ( (member_index == -1) || ((member_index == c->member()) && (c->memberType() == membcode)) ) ) { -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD if (c->object()->senderObjects) c->object()->senderObjects->listMutex->lock(); -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD removeObjFromList( c->object()->senderObjects, s, TRUE ); -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD if (c->object()->senderObjects) c->object()->senderObjects->listMutex->unlock(); -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD success = TRUE; clist->remove(); c = clist->current(); @@ -2791,10 +2785,10 @@ void TQObject::activate_signal( TQConnectionList *clist, TQUObject *o ) } #endif -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD // NOTE currentThread could be NULL if the current thread was not started using the TQThread API const TQThread *currentThread = TQThread::currentThreadObject(); -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD // Some slots are deleting the sender. It's not that great, but it's widespread enough, // so we can't track all such issues. So, we have to workaround this somehow. @@ -2813,15 +2807,15 @@ void TQObject::activate_signal( TQConnectionList *clist, TQUObject *o ) TQObject *oldSender; TQSenderObjectList* sol = object->senderObjects; if ( sol ) { -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD sol->listMutex->lock(); -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD oldSender = sol->currentSender; sol->ref(); sol->currentSender = this; } if ( c->memberType() == TQ_SIGNAL_CODE ) { -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD if ((d->disableThreadPostedEvents) || (object->d->disableThreadPostedEvents) || (currentThread && currentThread->threadPostedEventsDisabled()) || @@ -2839,12 +2833,12 @@ void TQObject::activate_signal( TQConnectionList *clist, TQUObject *o ) TQApplication::postEvent(object, new TQMetaCallEvent(c->member(), this, deepCopyTQUObjectArray(o), TQMetaCallEvent::MetaCallEmit)); } } -#else // !TQT_THREAD_SUPPORT +#else // !TQT_NO_THREAD object->tqt_emit( c->member(), o ); -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD } else { -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD if ((d->disableThreadPostedEvents) || (object->d->disableThreadPostedEvents) || (currentThread && currentThread->threadPostedEventsDisabled()) || @@ -2862,23 +2856,23 @@ void TQObject::activate_signal( TQConnectionList *clist, TQUObject *o ) TQApplication::postEvent(object, new TQMetaCallEvent(c->member(), this, deepCopyTQUObjectArray(o), TQMetaCallEvent::MetaCallInvoke)); } } -#else // !TQT_THREAD_SUPPORT +#else // !TQT_NO_THREAD object->tqt_invoke( c->member(), o ); -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD } if ( sol ) { sol->currentSender = oldSender; if ( sol->deref() ) { -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD sol->listMutex->unlock(); -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD delete sol; sol = NULL; } } -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD if (sol) sol->listMutex->unlock(); -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD } // use a copy of the pointer here as at this point this might be already deleted; no pun intended ;) @@ -3021,9 +3015,9 @@ void TQObject::dumpObjectTree() void TQObject::dumpObjectInfo() { -#ifdef TQT_THREAD_SUPPORT +#ifndef TQT_NO_THREAD TQMutexLocker locker( d->senderObjectListMutex ); -#endif // TQT_THREAD_SUPPORT +#endif // TQT_NO_THREAD #if defined(QT_DEBUG) tqDebug( "OBJECT %s::%s", className(), name( "unnamed" ) ); |