36 | | Acknowledgments are received asynchronously by the socket-reading thread. A circular buffer, !SendQueue, tracks the status of msgs after they been pulled from the !MessageStacker queue. If the socket is broken/reconnected, export*ack re-sends any msgs in the !SendQueue which haven't been acknowledged. In normal operation, if export*ack laps the !SendQueue and finds a message that has been sent but not ACKed, it will sleep 10ms and then check status again, looping until an ACK is received before preparing to send the next message. |
| 36 | Acknowledgments are received asynchronously by the socket-reading thread. A circular buffer, !SendQueue, tracks the status of msgs after they been pulled from the !MessageStacker queue. If the socket is broken/reconnected, export*ack re-sends any msgs in the !SendQueue which haven't been acknowledged. In normal operation, if export*ack laps the !SendQueue and finds a message that has been sent but not ACKed, it will sleep 10ms and then check status again, looping until an ACK is received before preparing to send the next message. |