Numbered Steps to Reproduce Problem:
1) Download the following test project: http://files.byondhome.com/Higoten/Tests/Input%20Test.zip
2) Compile and run the project. Use the Test() verb.
3) Select test1 and click OK.
4) Wait about 5 minutes. Observe that the object has been garbage collected after about 2950 ticks.
5) Compile and run the project downloaded in Step 1 above. Use the Test() proc.
6) Click the Cancel button.
7) Use the Test() verb.
8) Select test1 and click OK.
9) Observe that the object is garbage collected instantly.
Expected Results: For the references generated by the Input() proc to be garbage collected after the input has been answered and is no longer able to be used.
Actual Results: In some circumstances, it takes around 2950 ticks for the references generated by Input() to be garbage collected.
Does the problem occur:
Every time? Or how often? Unknown.
In other games? Untested.
In other user accounts? Untested.
On other computers? Yes.
When does the problem NOT occur?
Did the problem NOT occur in any earlier versions? If so, what was the last version that worked? No. This appears to be old behavior, tested to BYOND 354.
Workarounds: Create a temporary list populated with non-referencing values (such as names) from the original list, and pass that list to Input(), then use the return value to obtain the /atom from the original list.
What I don't understand is why the client can't notify the server that it's done with the reference list and have the server clean up the references.