Project news and announcements can be found here, along with site/forum rules. Be sure to read this first!
-
John Adams
- Retired
- Posts: 9684
- Joined: Thu Jul 26, 2007 6:27 am
- EQ2Emu Server: EQ2Emulator Test Center
- Characters: John
- Location: Arizona
-
Contact:
Post
by John Adams » Mon Oct 05, 2009 6:52 am
From the ChangeLog:
LethalEncounter wrote:Started a major overhaul to the storage and useage of the object containers. They are now all thread safe which allows us to stop using the readlock/writelock support which could lead to deadlocks.
I am pointing this out for 2 reasons.
- 1. Calling out to all players to log into the TessEQ2 or LethalEncounter servers repeatedly, and beat the holy snot out of them. Do combat, quests, spells, abilities, convos, merchant transactions, etc. Heck, even /who all lists =) We need to know how stable our new code is, and help LE find any remaining locks that have yet to be converted (LE, feel free to correct my lingo, I'm just guessing there
)
2. Server Admins - It would be helpful if you actually reported issues with your World, if you have them, instead of just waiting for another patch. Get involved in the process of making our World a better place for all. This is a dramatic change for World intended to reduce our previous issues with deadlocking threads, but it may introduce new issues and unless we know about every single one, we'll not be able to fix them.
If you have questions about the changes, ask here. Otherwise, let us know if you run into any problems
by posting in the Server Bugs forum.
Thanks!
John Adams
EQ2Emulator - Project Ghost
"Everything should work now, except the stuff that doesn't" ~Xinux
-
Arremis
- Retired
- Posts: 388
- Joined: Sun Sep 02, 2007 10:11 am
- Location: Memphis, TN
Post
by Arremis » Mon Oct 05, 2009 10:53 am
What's a readlock, writelock, and deadlock? What does "thread safe" mean?
I am the UI Master...there is no charge for my awesomeness.
-
Scatman
- Retired
- Posts: 1688
- Joined: Wed Apr 16, 2008 5:44 am
- EQ2Emu Server: Scatman's Word
- Characters: Scatman
- Location: New Jersey
Post
by Scatman » Mon Oct 05, 2009 11:04 am
Each zone that gets started up runs on its own thread. There are global lists that sometimes two or more zones need to access. This means two different threads can be trying to access the same list at one tme. If thread A is using the list and thread B wants it, then thread B must wait in line for thread A to be finished. Therefore thread B does not do anything until thread A is finished. That how locks work (very high level).
A deadlock occurs if both threads are waiting on each other to finish, therefore neither finishes and you "freeze" because both threads are waiting forever.
LE wrote up a new kickass way so hopefully, we'll never see a deadlock again

-
Arremis
- Retired
- Posts: 388
- Joined: Sun Sep 02, 2007 10:11 am
- Location: Memphis, TN
Post
by Arremis » Sat Oct 10, 2009 8:29 am
Rock on

I am the UI Master...there is no charge for my awesomeness.
Who is online
Users browsing this forum: No registered users and 0 guests