49 lines
1.1 KiB
Plaintext
49 lines
1.1 KiB
Plaintext
|
|
// Complex hang test case - cross-object method calls
|
||
|
|
|
||
|
|
print("=== Complex Hang Test ===")
|
||
|
|
|
||
|
|
box MessageHub {
|
||
|
|
init { handlers }
|
||
|
|
|
||
|
|
setup() {
|
||
|
|
print("MessageHub setup start")
|
||
|
|
me.handlers = new MapBox()
|
||
|
|
print("MessageHub setup complete")
|
||
|
|
}
|
||
|
|
|
||
|
|
deliver(messageType, data, from) {
|
||
|
|
print("Message: " + from + " -> " + messageType + " = " + data)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
box PeerNode {
|
||
|
|
init { nodeId, messageHub }
|
||
|
|
|
||
|
|
setup(hub) {
|
||
|
|
print("PeerNode setup start")
|
||
|
|
me.nodeId = "Node123"
|
||
|
|
me.messageHub = hub
|
||
|
|
print("PeerNode setup complete")
|
||
|
|
}
|
||
|
|
|
||
|
|
send(recipient, message) {
|
||
|
|
print("Sending message via hub...")
|
||
|
|
// This could cause the hang - complex field access in method call
|
||
|
|
me.messageHub.deliver("message", message, me.nodeId)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
print("Creating MessageHub...")
|
||
|
|
local hub
|
||
|
|
hub = new MessageHub()
|
||
|
|
hub.setup()
|
||
|
|
|
||
|
|
print("Creating PeerNode...")
|
||
|
|
local node
|
||
|
|
node = new PeerNode()
|
||
|
|
node.setup(hub)
|
||
|
|
|
||
|
|
print("Testing cross-object method call...")
|
||
|
|
node.send("alice", "Hello!")
|
||
|
|
|
||
|
|
print("Complex test completed!")
|