Skip to content

cleanup: MultithreadedEntityTracker extends AsyncEntityTracker#137

Closed
kalibrieren wants to merge 2 commits into
Wind-Development:masterfrom
kalibrieren:patch-1
Closed

cleanup: MultithreadedEntityTracker extends AsyncEntityTracker#137
kalibrieren wants to merge 2 commits into
Wind-Development:masterfrom
kalibrieren:patch-1

Conversation

@kalibrieren

Copy link
Copy Markdown
Contributor

No description provided.

@windcolor-dev

Copy link
Copy Markdown
Member

MultithreadedEntityTracker is different from AsyncEntityTracker -

The first one uses multiple threads, but waits for all the threads to finish up before moving on. AsyncEntityTracker doesn't wait for all the threads to finish until later on when the next tick starts. It's a really risky change, which is why its completely disabled right now. (See WorldTicker.java and WorldTickManager.java)

Probably best to remove AsyncEntityTracker entirely.

@kalibrieren

Copy link
Copy Markdown
Contributor Author

MultithreadedEntityTracker is different from AsyncEntityTracker -

The first one uses multiple threads, but waits for all the threads to finish up before moving on. AsyncEntityTracker doesn't wait for all the threads to finish until later on when the next tick starts. It's a really risky change, which is why its completely disabled right now. (See WorldTicker.java and WorldTickManager.java)

Probably best to remove AsyncEntityTracker entirely.

MultithreadedEntityTracker is basically the same as AsyncEntityTracker with the only difference being that we do latch stuff and send queued packets?

@windcolor-dev

Copy link
Copy Markdown
Member

Oh wait, you're correct in that lots the logic is the same and can be shared.

But heads up, AsyncEntityTracker might get removed because of concurrency risks. So probably best not to extend it.

@kalibrieren

Copy link
Copy Markdown
Contributor Author

Oh wait, you're correct in that lots the logic is the same and can be shared.

But heads up, AsyncEntityTracker might get removed because of concurrency risks. So probably best not to extend it.

Think it's best to merge MultithreadedEntityTracker & AsyncEntityTracker into one AsyncEntityTracker keeping flushing etc? Can open a PR. Lmk

@windcolor-dev

Copy link
Copy Markdown
Member

Oh wait, you're correct in that lots the logic is the same and can be shared.
But heads up, AsyncEntityTracker might get removed because of concurrency risks. So probably best not to extend it.

Think it's best to merge MultithreadedEntityTracker & AsyncEntityTracker into one AsyncEntityTracker keeping flushing etc? Can open a PR. Lmk

Yep, how about keeping MultithreadedEntityTracker and then removing AsyncEntityTracker. That would be great!

@kalibrieren

Copy link
Copy Markdown
Contributor Author

Oh wait, you're correct in that lots the logic is the same and can be shared.
But heads up, AsyncEntityTracker might get removed because of concurrency risks. So probably best not to extend it.

Think it's best to merge MultithreadedEntityTracker & AsyncEntityTracker into one AsyncEntityTracker keeping flushing etc? Can open a PR. Lmk

Yep, how about keeping MultithreadedEntityTracker and then removing AsyncEntityTracker. That would be great!

#139

@kalibrieren
kalibrieren deleted the patch-1 branch July 22, 2026 00:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants