This is a ringless implementation of millisecond precision timer and millisecond async_sleep function. I've added the functionality to the current async mod but this can me moved to a dedicated module.
For now only the async_ms_sleep is implemented but async_ms_route is just a few lines. Anyway how should I proceed with cleanup so this can be accepted ? With millisecond precision sleep one can easily implement a leaky bucket request shaper that delays incoming requests to achieve perfect rate limits per customer/sip-trunk/whatever without dropping requests. No more spikes and no more 503s. I've implemented external HTTP microservice that returns millisecond delays per dialog initiating request and tested it with SIPP with 3 flows/streams each with 250 CAPS. No leaks nor other issues in 24hrs of testing. You can view, comment on, or merge this pull request online at: https://github.com/kamailio/kamailio/pull/2008 -- Commit Summary -- * ms resolution sleep * fix leak * add functions * register additional timer * don't forget the tail * timeradd expects normalized parameteres * Don not eat the chain links -- File Changes -- M src/modules/async/async_mod.c (83) M src/modules/async/async_sleep.c (210) M src/modules/async/async_sleep.h (8) -- Patch Links -- https://github.com/kamailio/kamailio/pull/2008.patch https://github.com/kamailio/kamailio/pull/2008.diff -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/kamailio/kamailio/pull/2008
_______________________________________________ Kamailio (SER) - Development Mailing List sr-dev@lists.kamailio.org https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev