rhummelmose / BluetoothKit

Easily communicate between iOS/OSX devices using BLE
Other
2.27k stars 267 forks source link

Crashes when send large data. #115

Open tianzhuqiao opened 2 years ago

tianzhuqiao commented 2 years ago

Thanks for the great project. It works perfectly when sending small amount of data (e.g., < 1k). However, crashes when sending large data (e.g., ~1M bytes). Looks like the processSendDataTasks function used in sendData is recursive (e.g., on my phone, each call sends 182 bytes). Does it mean that it doesn't support sending large data (e.g., ~M bytes) (limited by the stack size)?

Why do we use a recursive function to send all data? Will a "for" loop work? Thanks!

https://github.com/rhummelmose/BluetoothKit/blob/2f268e43495db001ae92d9fedf1982e0e69d29da/Source/BKPeer.swift#L67

hrishav503 commented 2 years ago

did you find any solution sir?

tianzhuqiao commented 2 years ago

Not really. Tried to replace the recursive function with a for loop; but for some unknown reason, it only runs intermittently.