[Bug 157677] [NEW] cross-thread access to qt widgets

Launchpad Bug Tracker 157677 at bugs.launchpad.net
Fri Oct 17 13:20:15 UTC 2008


You have been subscribed to a public bug:

Here is sample code:
#v+
using Qyoto;

class Dupa:QWidget
{
        QGridLayout layout=new QGridLayout();
        public Dupa()
        {
                for(int i=0;i<11;++i)
                {
                        layout.AddWidget(new QLabel(i.ToString()),i,0);
                        layout.AddWidget(new QLineEdit(i.ToString()),i,1);
                }
                SetLayout(layout);
                Show();
        }
        static void Main(string[] args)
        {
                new QApplication(args);
                new Dupa();
                QApplication.Exec();
        }
}
#v-
Compilation method: gmcs -r:/usr/lib/cli/qyoto-1.0/qt-dotnet.dll dupa.cs

And here is the result of executing `mono dupa.exe':
#v+
ASSERT failure in QCoreApplication::sendEvent: "Cannot send events to objects owned by a different thread. Current thread b4e00788. Receiver '' (of type 'QWidget') was created in thread 8402fe0", file kernel/qcoreapplication.cpp, line 269
Stacktrace:

  at (wrapper managed-to-native) Qyoto.SmokeInvocation.CallSmokeMethod (int,intptr,intptr,int) <0x00004>
  at (wrapper managed-to-native) Qyoto.SmokeInvocation.CallSmokeMethod (int,intptr,intptr,int) <0xffffffff>
  at Qyoto.SmokeInvocation.Invoke (string,string,System.Type,object[]) <0x00895>
  at Qyoto.QLabel.Finalize () <0x00035>
  at (wrapper runtime-invoke) System.Object.runtime_invoke_void (object,intptr,intptr,intptr) <0xffffffff>

Native stacktrace:

	/usr/bin/cli [0x8194ca6]
	/usr/bin/cli [0x8177154]
	[0xffffe440]
	/lib/tls/i686/cmov/libc.so.6(abort+0x101) [0xb7d5e201]
	/usr/lib/libQtCore.so.4(_Z17qt_message_output9QtMsgTypePKc+0xcf) [0xb64fe01d]
	/usr/lib/libQtCore.so.4(_Z6qFatalPKcz+0x7f) [0xb64fe0a1]
	/usr/lib/libQtCore.so.4(_Z11qt_assert_xPKcS0_S0_i+0x3c) [0xb64fe0f8]
	/usr/lib/libQtCore.so.4(_ZN23QCoreApplicationPrivate19checkReceiverThreadEP7QObject+0x26f) [0xb65bd70f]
	/usr/lib/libQtGui.so.4(_ZN12QApplication6notifyEP7QObjectP6QEvent+0x7c) [0xb5e5c4ea]
	/usr/lib/libsmokeqt4.so.1(_ZN14x_QApplication6notifyEP7QObjectP6QEvent+0x87) [0xb6ad6b73]
	/usr/lib/libQtCore.so.4(_ZN16QCoreApplication14notifyInternalEP7QObjectP6QEvent+0x80) [0xb65bc456]
	/usr/lib/libQtGui.so.4 [0xb5e5917f]
	/usr/lib/libQtGui.so.4(_ZN7QWidgetD2Ev+0x3ba) [0xb5eb0c74]
	/usr/lib/libQtGui.so.4(_ZN6QFrameD2Ev+0x3d) [0xb61f8ac3]
	/usr/lib/libQtGui.so.4(_ZN6QLabelD2Ev+0x56) [0xb6200a10]
	/usr/lib/libsmokeqt4.so.1(_ZN8x_QLabelD0Ev+0x72) [0xb6c1555c]
	/usr/lib/libsmokeqt4.so.1(_Z12xcall_QLabelsPvPN5Smoke9StackItemE+0x50c) [0xb6be8902]
	/usr/lib/libqyoto.so(_ZN10MethodCall4nextEv+0x143) [0xb7040723]
	/usr/lib/libqyoto.so(CallSmokeMethod+0xdd) [0xb703942d]
	[0xb7072c1c]
	[0xb7071b3e]
	[0xb503603e]
	[0xb79890db]
	/usr/bin/cli [0x8176f50]
	/usr/bin/cli(mono_runtime_invoke+0x27) [0x80b0b2f]
	/usr/bin/cli [0x80cacfe]
	/usr/bin/cli [0x813ff70]
	/usr/bin/cli [0x80ca4c1]
	/usr/bin/cli [0x80caed2]
	/usr/bin/cli [0x80e92fb]
	/usr/bin/cli [0x81316ad]
	/usr/bin/cli [0x814ab16]
	/lib/tls/i686/cmov/libpthread.so.0 [0xb7ea646b]
	/lib/tls/i686/cmov/libc.so.6(clone+0x5e) [0xb7e0573e]
ASSERT: "q->testAttribute(Qt::WA_WState_Created)" in file kernel/qwidget_x11.cpp, line 1631
#v-

IMO this isn't normal behaviour and should be repaired in some way.

** Affects: kde4bindings (Ubuntu)
     Importance: Undecided
         Status: New

-- 
cross-thread access to qt widgets
https://bugs.edge.launchpad.net/bugs/157677
You received this bug notification because you are a member of Kubuntu Bugs, which is subscribed to kde4bindings in ubuntu.




More information about the kubuntu-bugs mailing list