Closed bakercp closed 11 years ago
I believe that the above happens when we attempt to call an ofAddListener
within a function that was called via the Poco system (i.e. inside setup).
The following happens when we try to create call ofAddListener
inside of another function (in this case, it was called during the first call to update()
:
(gdb) r
Starting program: /home/pi/openFrameworks/examples/events/advancedEventsExample/bin/advancedEventsExample_debug
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
ofAppEGLWindow constructor
in ofAppEGLWINDOW: setupOpenGL
[New Thread 0x41a13310 (LWP 2939)]
[New Thread 0x42213310 (LWP 2940)]
[New Thread 0x42a13310 (LWP 2941)]
[New Thread 0x43213310 (LWP 2942)]
succes=0
REQUESTED SCREEN SIZE w=1024 and h=768
HARDWARE SCREEN SIZE IS sw=1360 and sh=768
CREATING A SCREEN THAT IS w=1024 and h=768
[ofAppEGLWindow::setupEGL:notice] setting EGL Display
[ofAppEGLWindow::setupEGL:notice] setting default Display
[ofAppEGLWindow::setupEGL:notice] EGL Display correctly set
[ofAppEGLWindow::setupEGL:notice] eglInitialize
[ofAppEGLWindow::setupEGL:notice] No current render selected.
[ofAppEGLWindow::setupEGL:notice] Default Renderer detected.
[ofAppEGLWindow::setupEGL:notice] eglChooseConfig
[ofAppEGLWindow::setupEGL:notice] eglCreateWindowSurface
[ofAppEGLWindow::setupEGL:notice] eglCreateContext
[ofAppEGLWindow::setupEGL:notice] eglMakeCurrent
EGL_VERSION = (null)
GL_RENDERER = VideoCore IV HW
GL_VERSION = OpenGL ES-CM 1.1
GL_VENDOR = Broadcom
CREATED SCREEN WITH SIZE 1024 x 768
[New Thread 0x43a13310 (LWP 2943)]
terminate called after throwing an instance of 'Poco::SystemException'
what(): System exception
Program received signal SIGABRT, Aborted.
0x40879bfc in raise () from /lib/arm-linux-gnueabihf/libc.so.6
(gdb) backtrace
#0 0x40879bfc in raise () from /lib/arm-linux-gnueabihf/libc.so.6
#1 0x4087d97c in abort () from /lib/arm-linux-gnueabihf/libc.so.6
#2 0x406e3cfc in ?? () from /usr/lib/arm-linux-gnueabihf/libstdc++.so.6
#3 0x406e3cfc in ?? () from /usr/lib/arm-linux-gnueabihf/libstdc++.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb)
So, it seems that there is some odd thread stuff going on with poco. @arturoc could you take a look at this and see if you have any next steps for debugging? Once I exhaust our combined brain power, I'll take it over to the poco forums.
This is resolved using debian repo poco libs (1.3) and should be resolved using @arturoc's recompiled 1.4.3p1 libs.
fixed with #63
Whenever a custom event is added, we are getting a deadlock. This is affecting a lot of the examples on the raspberry pi. This was tested and failed with Poco 1.4.4 and 1.4.5.
I believe this is happening in Poco, because Poco's own tests won't release when using mutexes.
A little more research is needed on this.