Comments (12)
I'll have a check through the logic again for this over the weekend, but if you're able to reproduce the issue in a small sample then that would be great, but it's not a requirement for me to check this.
from enkits.
Thanks, I'll try to reproduce it in a sample later.
In the meanwhile, here's a picture of missed signals:
from enkits.
I've created a branch dev_waketasks with a potential fix for this - it looks like I broke the logic when moving to semaphores. I'm still doing some tests and running through the logic to check, but would appreciate knowing if this resolves your issue.
from enkits.
I've been able to find a reproduction for this, which will be added to my tests. The above fix doesn't resolve it but now I have a reproduction I should be able to fix this fairly rapidly - however I'm not sure how much time I'll have over the next few days.
from enkits.
Yeah, unfortunately the change hasn't helped, hopefully it will be fixed soon enough.
And I would like to say thank you, Doug, and wish you a Merry Christmas and a Happy New Year! 🎄
from enkits.
I have a good idea what's going on now, and a potential fix in progress so this shouldn't take too long.
Merry Christmas and a Happy New Year to you too!
from enkits.
I've pushed a fix for the issue I was able to reproduce in the revised TestWaitforTask.cpp test, though there's always a chance you have another related issue.
The current solution is slightly heavy handed, but the alternative solutions will take longer to program.
from enkits.
Update I'm still tracking a bug with this which happens extremely rarely, so the current dev_waketasks branch changes improve but do not resolve the issue.
from enkits.
The latest commit on dev_waketasks resolves the above issue, so may be worth testing on your code when you get time.
Meanwhile I'll continue checking logic and testing.
from enkits.
I've now merged this into master branch.
I'm going to pre-emptively close this assuming the fix works for your situation as well as my test, but if not please re-open.
from enkits.
I'm reopening this issue as I can still replicate the problem on OSX now I've fixed #49
from enkits.
I found the logic error responsible for the recent issue - somehow I'd missed that HaveTasks() was not being called by WaitForTaskCompletion() after wait variables were set. I found a few other minor perf issues at the same time.
I'm going to close this again, hopefully it will stay closed for a while :) Please do update this thread if your able to test with whether your issue is resolved or not and if not reopen.
Many thanks for finding this!
from enkits.
Related Issues (20)
- Macro redefinition for WIN32_LEAN_AND_MEAN HOT 1
- Conversion warnings HOT 1
- Wrong asserts used HOT 1
- Suggestions for propagating user data into tasks? Client+Server in same exe HOT 3
- Rejecting a task and adding it back to the queue? HOT 8
- Add soname to shared library HOT 1
- Put header files in a subdirectory HOT 3
- Put header files in a subdirectory in the main repository HOT 2
- Where is the proper position to add PreRun and PostRun? HOT 2
- Race Condition? HOT 3
- The threads responsible for executing the tasks HOT 2
- CMake version HOT 2
- Address Sanitizer finding HOT 1
- Deadlock with WaitForNewPinnedTasks and WaitforAllAndShutdown HOT 4
- Feature Request: Shutdown HOT 7
- Make gtl_threadNum invalid by default. HOT 9
- Run all tasks of given priority (or higher) HOT 3
- Deadlock in SemaphoreWait (macOS) HOT 16
- More platforms supported in enki::GetNumHardwareThreads HOT 5
- Stuttering on Intel hybrid CPUs HOT 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 enkits.