ID:2907707
 
Resolved
Multiple types of calls requiring procs to wait for a client response could sit around forever (until world reboot) if the client was deleted.
BYOND Version:514
Operating System:Windows 10 Pro 64-bit
Web Browser:Firefox 117.0
Applies to:Dream Daemon
Status: Resolved (515.1637)

This issue has been resolved.
Descriptive Problem Summary:
Ok so we've had this really persistent hard delete issue with our runechat (text that floats above mobs when they talk) datum.

The reference tracker found nothing, so I looked at the only thing that sleeps in that bit of code.

It's a MeasureText call. I wrote some code to track if the call is still waiting when it comes time to harddel, and it is (client has disconnected).

This implies that measure text either has no timeout, or a really long timeout. In testing it seems to have none.

I'm making this an issue report assuming it's case #1, if it isn't uh, pls tell me how long the timeout is/consider this a feature request for control over it.

Steps to Reproduce Problem:

Connect a client
Call MeasureText on it
Immediately disconnect

MeasureText never stops sleeping

Code Snippet (if applicable) to Reproduce Problem:
https://github.com/LemonInTheDark/basic-test-project/tree/ measuretext

Run game in dream deamon
Click the verb (get disconnected)
Note how the stack never exits, (since the screamer's Del is never called)

Reconnect, doesn't exit, etc

Expected Results:
Sleep ends on client deletion

Actual Results:
Sleep seemingly never ends

Does the problem occur:
Every time? Or how often? Every time
In other games? Yes
In other user accounts? Yes
On other computers? Yes

When does the problem NOT occur?
Idk bro

Did the problem NOT occur in any earlier versions? If so, what was the last version that worked? (Visit http://www.byond.com/download/build to download old versions for testing.)
Not that I'm aware of

Workarounds:
Cry
del() the datum anyway cause if you don't you get a memory leak

Bump, please lummy I'm dying the demons stole all my cpu time
Lummox JR resolved issue with message:
Multiple types of calls requiring procs to wait for a client response could sit around forever (until world reboot) if the client was deleted.