aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/iomgr/alarm.c
Commit message (Collapse)AuthorAge
* clang-format all sourceGravatar Craig Tiller2015-08-18
|
* Merge github.com:grpc/grpc into ↵Gravatar Craig Tiller2015-07-22
|\ | | | | | | | | | | | | | | | | | | sometimes-its-good-just-to-check-in-with-each-other Conflicts: src/core/client_config/subchannel.c src/core/iomgr/alarm.c src/core/iomgr/iomgr.c src/core/iomgr/tcp_client_posix.c
| * Move alarm subsystem to monotonic timeGravatar Craig Tiller2015-07-19
| |
* | Fix state tracking, refcounting bugsGravatar Craig Tiller2015-07-17
| |
* | Merge github.com:grpc/grpc into ↵Gravatar Craig Tiller2015-07-17
|\| | | | | | | sometimes-its-good-just-to-check-in-with-each-other
* | Shutdown alarms should not finish successfullyGravatar Craig Tiller2015-07-17
| |
| * Introduce a clock type field onto gpr_timespec.Gravatar Craig Tiller2015-07-13
|/ | | | | Use it to validate that arithmetic on time types makes even some vague kind of sense.
* Remove the racy check added in commit i74c14e5ac752edc7e1dc0aaf31abfd1153df1d0a.Gravatar Vijay Pai2015-04-04
| | | | | This is potentially unsafe since checking the deadline involves more than 1 word read.
* Add in a racy check for min deadline in run_some_expired_alarms beforeGravatar Vijay Pai2015-04-02
| | | | | attempting the trylock. This shaves the number of g_mu and g_checker_mu uses dramatically in perf test workload and all tests still pass.
* Add missing new-lines at end of fileGravatar Craig Tiller2015-02-18
|
* Update copyright to 2015Gravatar Craig Tiller2015-02-18
|
* Go one further.Gravatar Craig Tiller2015-02-04
| | | | There's no need for this branch at all.
* Respecify our way out of some very high contentionGravatar Craig Tiller2015-02-04
| | | | Theres no need for every thread to exit polling early if an alarm might finish, so there's no need to contend here.
* () --> (void)Gravatar Craig Tiller2015-01-15
|
* Remove libevent.Gravatar ctiller2015-01-09
| | | | | | | | | | | | | | | | | | | | | | | Fixed any exposed bugs across the stack. Add a poll() based implementation. Heavily leverages pollset infrastructure to allow small polls to be the norm. Exposes a mechanism to plug in epoll/kqueue for platforms where we have them. Simplify iomgr callbacks to return one bit of success or failure (instead of the multi valued result that was mostly unused previously). This will ease the burden on new implementations, and the previous system provided no real value anyway. Removed timeouts on endpoint read/write routines. This simplifies porting burden by providing a more orthogonal interface, and the functionality can always be replicated when desired by using an alarm combined with endpoint_shutdown. I'm fairly certain we ended up with this interface because it was convenient to do from libevent. Things that need attention still: - adding an fd to a pollset is O(n^2) - but this is probably ok given that we'll not use this for multipolling once platform specific implementations are added. - we rely on the backup poller too often - especially for SSL handshakes and for client connection establishment we should have a better mechanism ([] [] - Linux needs to use epoll for multiple fds, FreeBSD variants (including Darwin) need to use kqueue. ([] [] - Linux needs to use eventfd for poll kicking. ([] Change on 2015/01/07 by ctiller <ctiller@google.com> ------------- Created by MOE: http://code.google.com/p/moe-java MOE_MIGRATED_REVID=83461069
* Add a --forever flag, to continuously run tests as things change.Gravatar ctiller2015-01-09
| | | | | | | Change on 2015/01/07 by ctiller <ctiller@google.com> ------------- Created by MOE: http://code.google.com/p/moe-java MOE_MIGRATED_REVID=83451760
* Remove libevent.Gravatar ctiller2015-01-08
| | | | | | | | | | | | | | | | | | | | | | | Fixed any exposed bugs across the stack. Add a poll() based implementation. Heavily leverages pollset infrastructure to allow small polls to be the norm. Exposes a mechanism to plug in epoll/kqueue for platforms where we have them. Simplify iomgr callbacks to return one bit of success or failure (instead of the multi valued result that was mostly unused previously). This will ease the burden on new implementations, and the previous system provided no real value anyway. Removed timeouts on endpoint read/write routines. This simplifies porting burden by providing a more orthogonal interface, and the functionality can always be replicated when desired by using an alarm combined with endpoint_shutdown. I'm fairly certain we ended up with this interface because it was convenient to do from libevent. Things that need attention still: - adding an fd to a pollset is O(n^2) - but this is probably ok given that we'll not use this for multipolling once platform specific implementations are added. - we rely on the backup poller too often - especially for SSL handshakes and for client connection establishment we should have a better mechanism ([] [] - Linux needs to use epoll for multiple fds, FreeBSD variants (including Darwin) need to use kqueue. ([] [] - Linux needs to use eventfd for poll kicking. ([] Change on 2015/01/07 by ctiller <ctiller@google.com> ------------- Created by MOE: http://code.google.com/p/moe-java MOE_MIGRATED_REVID=83461069
* Port [] alarm management to GRPC.Gravatar ctiller2014-12-29
This change implements a platform independent alarm manager in alarm.c. It's integrated with iomgr, and some tests are cleaned up. The alarm implementation itself is a fairly direct port of LazyAlarmList from eventmanager. SpinLock has been replaced for now with gpr_mu, and other atomic operations have been dropped (again, for now). A majority of tests have been ported. Change on 2014/12/19 by ctiller <ctiller@google.com> ------------- Created by MOE: http://code.google.com/p/moe-java MOE_MIGRATED_REVID=82551363