sendMessage<T, R> method

Future<R> sendMessage<T, R>(
  1. WorkerMessage<T, R> message
)

Sends a WorkerMessage to the next available worker in round-robin order.

Implementation

Future<R> sendMessage<T, R>(WorkerMessage<T, R> message) {
  if (_workers.isEmpty) {
    throw StateError('No workers available in the pool.');
  }
  // Tìm worker không pause
  int checked = 0;
  while (checked < _workers.length) {
    final worker = _workers[_next];
    _next = (_next + 1) % _workers.length;
    if (!worker._isPaused) {
      return worker.sendMessage<T, R>(message);
    }
    checked++;
  }
  throw StateError('No available (unpaused) workers in the pool.');
}