#Job System
1 messages · Page 1 of 1 (latest)
Might be useful as building block for in-process thread scheduling. but its missing the priority handling pieces.
As of now, the name "job system" is not explicit regarding thread scheduling, because one can do the same for processes.
Or whole process groups or full pcs, clusters etc.
It doesn’t have priority because it’s meant to be used only for games
I just take a glance at the zjobs, but I found that to be a bit too complex for what I think a job system should do, so I made one for my self to simpler and straight forward. For the differences I can say that:
- Jobs doesn't have a size limit, it uses internally a arena allocator and you can pass a pointer to the job (small allocation) or a job struct (potentially bigger allocation)
- Each job can depend on a single job, use call
.wait()multiple times in a single frame an pack as mutch as possible into fewer stages - Uses a non-blocking RingQueue, should be faster for polling jobs
- You can wait for a individual job to finish
sorry I had second thoughts about my post and thought maybe it wasn't productive
didn't know if you had seen it already
thanks for listing the differences
I suppose my use case is that I have different areas of the game's architeture that start s jobs and another part of my architecture that handles completed jobs
based on job type, so some event happens -> a job is started -> job runs, on each frame I look for completed jobs and then do ECS processing or something