- (let ((sent-p nil)
- (tries 3))
- (loop
- while (and (not sent-p)
- (> tries 0))
- do (handler-case
- (let ((s (network-stream c)))
- (raw-send-message s message)
- (setf sent-p t))
- (sb-int:closed-stream-error ()
- (progn
- (decf tries)
- (empire-log:info "~a: Connection close - retrying (~a tries left)" c tries)
- (reconnect c))))))
- message)
+ (let ((s (network-stream c)))
+ (raw-send-message s message)))
+
+(defmethod send-message ((c connection) message)
+ (if (not (connected-p c))
+ (reconnect c))
+ (locked-queue:enqueue (send-queue c) message))