GCC began to offer full support for the C11 standard starting with version 4.9,
including support for the _Atomic keyword.
https://gcc.gnu.org/gcc-4.9/changes.html
Since GCC 14 now implements `__has_extension()` the build started to use
Clang atomics, i.e. the `__c11_*` APIs only provided by Clang.
Fix build to use GNUC atomics and include the upstream patch:
https://reviews.freebsd.org/D16585
which enables C11 atomics when building with GCC >= 4.7.
There's a bug of last version, every tick, the timer will traverse all the
entries in callwheel, when lots of connections comming, the callout
process will use lots of cpu resources.
This commit fixes it, every tick, check the bucket which is hashed with current
tick, if there are entries, compare the callout tick, and invoke
callbacks.