So I tried sip4, and my old namespace sip code that worked with sip3 doesn't work any more. I posted about that specifically today.
On Wednesday 31 December 2003 01:17, Phil Thompson wrote: > On Wednesday 31 December 2003 12:39 am, Patrick Stinson wrote: > > out of curiosity: is that a general suggestion about the snapshots or one > > related to my problem? > > Both. > > Phil > > > On Tuesday 30 December 2003 03:19, Phil Thompson wrote: > > > Version numbers? > > > > > > If you are not already doing so I'd suggest using the latest SIP v4 and > > > PyQt snapshots. > > > > > > Phil > > > > > > On Monday 29 December 2003 7:47 am, Patrick Stinson wrote: > > > > I'm using alsa's rawmidi interface to read midi messages from > > > > hardware, then pumping them to my qt application code. The problem > > > > thus far has been dealing with the higher (~50-100/sec) volumes of > > > > messages received in a dedicated thread, and integrating them safely > > > > into the main qt event thread. > > > > > > > > My midi class has a blocking read method that produces messages. a > > > > python thread is created to call it, and messages are put into a > > > > Queue.Queue object. Another python thread reads from the queue and > > > > uses QApplication.postEvent to get the message into the qt thread. > > > > All is fine until I call a method like 'QSlider.setValue' that > > > > changes the way a widget looks from my overridden QWidget.event() > > > > method. I've tried setting a single-millisecond timer to generate > > > > events in place of the midi object, and of course, everything works > > > > fine. Why is it that the slider dies when the 'events', however > > > > proxied, originate in the midi thread? > > > > > > > > Sometimes I'm getting negative ref counts; what could be left over or > > > > deleted so fast that python/qt couldn't keep up? > > > > > > > > > > > > here is the simple result from an attempt at a > > > > [midi thread: Queue.put()] -> > > > > [dispatch thread: Queue.get(), QApplication.postEvent()] -> > > > > [qt thread: event(),QEvent.data()] > > > > > > > > > > > > bash-2.05b$ pksampler > > > > WAD Enabled > > > > pkaudio: found 4 devices, but only using 1. > > > > pkaudio: ->> Found device: hw:PCI,0 > > > > pkaudio: outputs: 2 > > > > pkaudio: inputs: 2 > > > > pkaudio: [[loaded device 1]] > > > > pkaudio: ->> Found device: hw:Extigy,0 > > > > pkaudio: outputs: 6 > > > > pkaudio: inputs: 2 > > > > pkaudio: sample rates: 48000 > > > > pkaudio: ->> Found device: hw:Extigy,2 > > > > pkaudio: outputs: 2 > > > > pkaudio: inputs: 0 > > > > pkaudio: sample rates: 48000 > > > > PKSampler: driver buffer size: 2048 > > > > PKSampler: driver sample rate: 44100 > > > > PKSampler: All daemons up and running > > > > WAD: Collecting debugging information... > > > > WAD: Segmentation fault. > > > > #12 0x40238247 in __clone() > > > > #11 0x40030d40 in pthread_start_thread() > > > > #10 0x080ee9bd in t_bootstrap() > > > > #9 0x080c2da9 in PyEval_CallObjectWithKeywords() > > > > #8 0x0805c3fe in PyObject_Call() > > > > #7 0x080642d3 in instancemethod_call() > > > > #6 0x0805c3fe in PyObject_Call() > > > > #5 0x0810d125 in function_call() > > > > #4 0x080c162f in PyEval_EvalCodeEx() > > > > #3 0x080bf82f in eval_frame() > > > > #2 0x080c3119 in call_function() > > > > #1 0x0810d8d6 in PyCFunction_Call() > > > > #0 0x417f58b1 in _Z26sipDo_QCustomEvent_setDataP7_objectS0_() > > > > > > > > > > > > -------------------------------------- > > > > > > > > > > > > I've had several horrendous stack traces, but I think the following > > > > one best suits the extent of my problem... > > > > > > > > PKSampler: All daemons up and running > > > > WAD: Collecting debugging information... > > > > SegFault: [ C stack trace ] > > > > > > > > #50 0x080b9ef4 in PyEval_EvalCode() > > > > #49 0x080c162f in PyEval_EvalCodeEx() > > > > #48 0x080bf82f in eval_frame() > > > > #47 0x080c3119 in call_function() > > > > #46 0x0810d8d6 in PyCFunction_Call() > > > > #45 0x418de03b in _Z28sipDo_QApplication_exec_loopP7_objectS0_() > > > > #44 0x40563b11 in _ZN12QApplication4execEv() > > > > #43 0x40576928 in _ZN10QEventLoop4execEv() > > > > #42 0x40576a86 in _ZN10QEventLoop9enterLoopEv() > > > > #41 0x4050fea4 in _ZN10QEventLoop13processEventsEj() > > > > #40 0x4055301d in _ZN10QEventLoop14activateTimersEv() > > > > #39 0x418db9fb in _ZN15sipQApplication6notifyEP7QObjectP6QEvent() > > > > #38 0x40562cb5 in _ZN12QApplication6notifyEP7QObjectP6QEvent() > > > > #37 0x405638c5 in > > > > _ZN12QApplication14internalNotifyEP7QObjectP6QEvent() #36 0x41598b6f > > > > in _ZN9sipQTimer5eventEP6QEvent() > > > > #35 0x405df932 in _ZN6QTimer5eventEP6QEvent() > > > > #34 0x408da8eb in _ZN6QTimer7timeoutEv() > > > > #33 0x405be454 in _ZN7QObject15activate_signalEi() > > > > #32 0x405be620 in > > > > _ZN7QObject15activate_signalEP15QConnectionListP8QUObject() #31 > > > > 0x41907334 in _ZN10sipProxyqt9qt_invokeEiP8QUObject() > > > > #30 0x41523175 in _ZN10sipProxyqt9proxySlotEv() > > > > #29 0x40019fdf in _Z13sipEmitToSlotP7sipSlotP7_object() > > > > #28 0x080c2da9 in PyEval_CallObjectWithKeywords() > > > > #27 0x0805c3fe in PyObject_Call() > > > > #26 0x080642d3 in instancemethod_call() > > > > #25 0x0805c3fe in PyObject_Call() > > > > #24 0x0810d125 in function_call() > > > > #23 0x080c162f in PyEval_EvalCodeEx() > > > > #22 0x080bf82f in eval_frame() > > > > #21 0x080c325b in call_function() > > > > #20 0x080c3463 in fast_function() > > > > #19 0x080bf82f in eval_frame() > > > > #18 0x080c325b in call_function() > > > > #17 0x080c3463 in fast_function() > > > > #16 0x080bf82f in eval_frame() > > > > #15 0x080c3119 in call_function() > > > > #14 0x0810d8d6 in PyCFunction_Call() > > > > #13 0x41b4223d in _Z23sipDo_PK_Effect_ControlP7_objectS0_() > > > > #12 0x40020157 in sipMapCppToSelf() > > > > #11 0x4001b713 in sipNewCppToSelf() > > > > #10 0x0805ea92 in PyInstance_New() > > > > #9 0x080c2da9 in PyEval_CallObjectWithKeywords() > > > > #8 0x0805c3fe in PyObject_Call() > > > > #7 0x080642d3 in instancemethod_call() > > > > #6 0x0805c3fe in PyObject_Call() > > > > #5 0x0810d125 in function_call() > > > > #4 0x080c16a8 in PyEval_EvalCodeEx() > > > > #3 0x08082a95 in _Py_Dealloc() > > > > #2 0x0810a7c6 in frame_dealloc() > > > > #1 0x08082a8a in _Py_Dealloc() > > > > #0 0x08082a1e in _Py_ForgetReference() > > > > > > > > pkaudio: buffer thread exiting. > > > > pkaudio: engine thread exiting. > > > > PKSampler: All daemons stopped cleanly. > > > > [40724 refs] > > > > Fatal Python error: Objects/frameobject.c:403 object at 0x81ff8a4 has > > > > negative ref count -1 > > > > WAD: Collecting debugging information... > > > > WAD: Abort. > > > > #14 0x08054ca1 in ?() > > > > #13 0x4017390c in __libc_start_main() > > > > #12 0x08054d5a in main() > > > > #11 0x08055638 in Py_Main() > > > > #10 0x080e5b61 in Py_Finalize() > > > > #9 0x080e45ca in PyInterpreterState_Clear() > > > > #8 0x080e4a9c in PyThreadState_Clear() > > > > #7 0x08082a95 in _Py_Dealloc() > > > > #6 0x0810a7b6 in frame_dealloc() > > > > #5 0x0807ec70 in _Py_NegativeRefcount() > > > > #4 0x080e838b in Py_AtExit() > > > > #3 0x401885fb in __GI_abort() > > > > #2 0x40187094 in __GI_raise() > > > > #1 0x4003386b in __pthread_raise() > > > > #0 0x401872e1 in __kill() > > > > > > > > > > > > > > > > _______________________________________________ > > > > PyKDE mailing list [EMAIL PROTECTED] > > > > http://mats.imk.fraunhofer.de/mailman/listinfo/pykde > > > > > > _______________________________________________ > > > PyKDE mailing list [EMAIL PROTECTED] > > > http://mats.imk.fraunhofer.de/mailman/listinfo/pykde _______________________________________________ PyKDE mailing list [EMAIL PROTECTED] http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
