in reply to Design decision, call backs and network data
Depends on how much context you need to deal with the response. For maximum flexibility, have your "things pending responses" variable be an array of coderefs, where for each incoming packet, each coderef is called in turn until one returns true indicating that it handled the packet. Then
a callback can push an anonymous closure onto the array with whatever context it needs. If a response is always going to be a single packet, it probably makes most sense for the main loop's loop through the array to remove the coderef that handled the packet; if not, the pushed coderef itself should when it's received all of its response.
|