Comments (7)
are you using the code from your PR? If so, there are some non _WQ lock variants, which are noops. This might lead to wrong method call order i.e. use of a deleted object.
from ogre-audiovideo.
No, I am using code from another PR which I didn't submit (option 1).
I will see what happens with the code from the PR you saw and check the non _WQ lock variants.
Thanks!
from ogre-audiovideo.
Hey @paroj, I replaced all the OGRE_LOCK_MUTEX_NAMED
for OGRE_WQ_LOCK_MUTEX_NAMED
.
There is no change, in fact I see this in OgreThreadDefines.h:
#define OGRE_LOCK_MUTEX_NAMED(mutexName, lockName) OGRE_WQ_LOCK_MUTEX_NAMED(mutexName, lockName)
And those are all the locks I'm using.
There seems to be a problem with the usage of the replacements in OgreThreadDefines.h, because when using the code from the PR#14 the crash is even worse.
So, I have two branches:
- std_thread: just adds
std::thread
as a third option to POCO and boost, the changes are minimal - std_thread2: that is the branch from PR#14 that you know
When using branch std_thread
the application crashes on exit, but only when using the debugger to step through the code. If using release or debug normally the crash does not happen (there is still something wrong) but the user won't notice.
When using branch std_thread2
the crash happens always and it is much more visible.
If you want I can submit another PR with branch std_thread
so you can check that out.
Also let me know if you think that this is too much work for minimal gain 😭
from ogre-audiovideo.
There is no change, in fact I see this in OgreThreadDefines.h:
this is only used if OGRE_THREAD_SUPPORT != 3
, but 3 is the default (only workqueue syncronised).
When using branch std_thread2 the crash happens always and it is much more visible.
when it comes to threading a reproducible crash is better than a crash that only happens sometimes. With a debugger attached, the application execution is slowed down, so that crash might also happen in release mode on a slower computer.
I will try to take a look at this soon.
from ogre-audiovideo.
when it comes to threading a reproducible crash is better than a crash that only happens sometimes. With a debugger attached, the application execution is slowed down, so that crash might also happen in release mode on a slower computer.
When I said always what I meant was that it happened both in release and debug version with and without the debugger attached, it is a much harder crash.
The other crash (the one referenced in this thread) is also very consistent and happens always when exiting and joining the other thread but it happens only when you are running the debug version inside a debugger which is a situation that a user is very unlikely to come up with.
If you want I can submit another patch request from the other branch so you can see what I'm talking about.
Anyway, I really apreciate you looking into this because this problem goes over my head.
Thanks!
from ogre-audiovideo.
It seems that the problem was related to OpenAL Soft for Windows in some way, I am now using the latest version 1.21.1 and the problem is gone.
from ogre-audiovideo.
also giving you maintainer access, as you know the code better than me by now
from ogre-audiovideo.
Related Issues (7)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ogre-audiovideo.