tdlibIsolate function

Future<void> tdlibIsolate(
  1. TdlibIsolateData tdlibIsolateData
)

add this for multithread new client on flutter apps

Implementation

Future<void> tdlibIsolate(TdlibIsolateData tdlibIsolateData) async {
  TdlibNative.opentdLib(
    isCli: tdlibIsolateData.isCli,
    pathTdlib: tdlibIsolateData.pathTdlib,
  );
  try {
    // Duration duration = tdlibIsolateData.delayUpdate ?? Duration(microseconds: 1);
    while (true) {
      // await Future.delayed(duration);
      Map? new_update = TdlibNative.td_receive_static(
        timeout: tdlibIsolateData.timeOutUpdate,
        isAndroid: tdlibIsolateData.isAndroid,
      );
      if (new_update != null) {
        tdlibIsolateData.sendPort.send(
          TdlibIsolateReceiveData(
            updateData: new_update,
            clientId: new_update["@client_id"],
          ),
        );
        //
      }
    }
  } catch (e) {
    tdlibIsolateData.sendPort.send(
      TdlibIsolateReceiveDataError(),
    );
  }
}