Hi Ken, Am 29.12.2015 um 16:32 schrieb Ken Murchison: > If all that can be done safely in the signal handler is setting a global > variable, > I might just scrap the heartbeat functionality. The alternative is that the > actual method processin > code will have periodically check the status of the global variable. Or do > you have a more creative idea?
checking a global variable is how it's done usually. Or if the HTTP server is using some kind of event driven framework, set up a timer instead of SIGARLM. On linux there's signalfd(), but that's non-portable, so a no no for cyrus. The global variable should be of type "volatile sig_atomic_t". Random side note: What was the main motivation for implementing an own HTTP server including authentication stuff / chunked encoding etc? Was implementing an Apache httpd module in C considered without redoing the whole HTTP protocol layer? Just wondering, we are doing our stuff at dayjob as a C++ apache module. You just register a handler for URIs / mime-types you are interested in. Other HTTP server like ngix would probably work, too. Cheers, Thomas