1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-07-07 06:01:35 +03:00
Commit Graph

13 Commits

Author SHA1 Message Date
ccecbfe459 Add Copyright notice to Schedule.h (#7653)
* Add Copyright notice to Schedule.h

* Add copyright notice to Schedule.cpp
2020-10-15 21:09:14 +02:00
388d3020f2 Fix minor GCC10 static analyzer warnings (#7255)
Add minor NULL and double-free checks to source, identified using GCC10
pre-release static `-fanalyzer` on the coude.  These are harmless to
other versions.

Also add explicit include of stdint to Schedule.h, because libstdc++20
will not automatically include it.  Safe and no-op on earlier versions.
2020-04-30 18:25:31 -07:00
72a4dde64f sntp callback: use a recurrent schedule function (#6888) 2019-12-10 11:41:42 +01:00
6e51ef0cc8 Wakeup delayed scheduling (#6485)
* Fix for scheduling recurrent functions while inside scheduled function

* Check that fn are valid. Invoking invalid functions throws otherwise.

* Added wakeup token to scheduler. Toggling the token value breaks a scheduled function

out from a delayed execution and makes it run on the next scheduler iteration.

* Timer reset reliability fix.

* Shrink interrupts-locked regions.

Add check for periodic yield to scheduled functions run-loop.

* Ordered, more predictable, scheduling. Before, it had different ordering compared to

FastScheduler as well as sequential calls from loop().

* Optional, for the paranoid: revert changes to (non-recurrent) schedule_function() / run_scheduled_functions().

* Comment

* Adapt one-line ifs to general style in same source file.

* Fix wakeupToken handling - don't respond to toggle, but to different value

vs. that at registering function with scheduler.

* Reword comment.

* Putting aside std::atomic concerns, use a callback for scheduler alarming.

In the future, async future's .then() might take advantage of this direction.

* Drop atomic include, align function type syntax.

* Reduce flash use.

* Prefer const ref over call by value plus std::move().
2019-10-28 08:55:00 -03:00
5a47cab77d add documentation to scheduled functions (#6234)
* add documentation to scheduled functions
2019-06-27 12:09:27 +02:00
80e976d1f0 recurrent scheduled functions: fix comment (#6228)
per https://github.com/esp8266/Arduino/pull/6182#issuecomment-505413580
2019-06-25 11:18:19 -07:00
05be1a09e6 remove scheduled functions complexity overhead, change recurrent api (#6214)
* remove scheduled functions complexity overhead, change recurrent functions api
2019-06-25 12:53:47 +02:00
455583b40f scheduled functions: calls from yield are now optional (#6158)
* scheduled functions: calls from yield are now optional
* add move constructors
* yield every 100ms
2019-05-29 11:10:30 +02:00
09f6b87ef5 scheduled functions: fixes (#6137)
* scheduled functions: properly reset structure

* fence against recursion, rename variables for clarity

* update comments
2019-05-25 17:15:01 +02:00
b55199227b add regular scheduled functions, now also callable on yield() (#6039)
* add regular scheduled functions, now also callable on `yield()`

added bool schedule_function_us(std::function<bool(void)> fn, uint32_t repeat_us)
lambda must return true to be not removed from the schedule function list
if repeat_us is 0, then the function is called only once.

Legacy schedule_function() is preserved

This addition allows network drivers like ethernet chips on lwIP to be regularly called
- even if some user code loops on receiving data without getting out from main loop
  (callable from yield())
- without the need to call the driver handling function
  (transparent)

This may be also applicable with common libraries (mDNS, Webserver, )
2019-05-23 22:03:53 +02:00
eea9999dc5 Revert "Allman now (#6080)" (#6090)
This reverts commit 98125f8860.
2019-05-14 00:09:54 +02:00
98125f8860 Allman now (#6080)
* switch restyle script for CI

* remove confirmation

* restyle with allman
2019-05-13 16:41:34 +02:00
5eb6a7f449 Add mechanism for posting functions to the main loop (#2082)
* Add mechanism for posting functions to the main loop (#1064)

* Fix indentation, add note that API is not stable
2016-06-08 11:22:48 +08:00