As a user, I want to be able to call methods using a timeout parameter, rather than using a global timeout. For example, I'd like to be able to pass timeouts to the following:
...so that I can call them with a different timeouts rather than changing the global timeout every time I want to call a method with a different timeout value.
This is painful for multiple reasons, but the biggest concern I have is multithreading. If I change the global timeout in multiple threads, one could affect the other and break what we're trying to do.
We have a fix for this in our fork (egineering-llc/RZBluetooth:master), but there are other changes there awaiting PR reviews in RZBluetooth #92 and #100.
Issue
As a user, I want to be able to call methods using a timeout parameter, rather than using a global timeout. For example, I'd like to be able to pass timeouts to the following:
-[RZBCentralManager scanForPeripheralsWithServices:options:onDiscoveredPeripheral:]
-[RZBPeripheral writeData:characteristicUUID:serviceUUID:completion:]
...so that I can call them with a different timeouts rather than changing the global timeout every time I want to call a method with a different timeout value.
As it is, I'd have to do something like:
This is painful for multiple reasons, but the biggest concern I have is multithreading. If I change the global timeout in multiple threads, one could affect the other and break what we're trying to do.
Ideally, we'd be able to do this instead: