Add extra parameter to all callbacks #4659
Labels
Component: Core
Related to the code for the standard Arduino API
feature request
A request to make an enhancement (not a bug fix)
Library: Other
Arduino libraries that don't have their own label
Library: Wire
The Wire Arduino library
On Arduino, you'll tipically declare a new callback on the main file for each thing you are listening on.
It's very difficult to write generic, reusable libraries that attach to interruptions or other callbacks.
In C/C++ world, we usually specify an extra
void*
parameter when registering the callback, where the listener can store any context necessary.I suggest we adopt this on all Arduino callbacks:
attachInterrupt()
,Serial.serialEvent()
,Wire.OnReceive()
, etcI've already create #4519, which upgrades
attachInterrupt()
.Keep in mind that the changes can be done in a backwars-compatible way, and the impact in performance, memory and flash storage is quite low (But not zero)
The text was updated successfully, but these errors were encountered: