- (empire-log:info "> ~a~%" message)
- (let ((sent-p nil)
- (tries 3))
- (loop
- while (and (not sent-p)
- (> tries 0))
- do (handler-case
- (progn
- (raw-send-message s message)
- (setf sent-p t))
- (sb-int:closed-stream-error ()
- (progn
- (decf tries)
- (empire-log:info "Connection close - retrying (~a tries left)" tries)
- (reconnect c))))))
- message))
+ (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))