mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-31 06:25:31 +00:00
apply the modified style
This commit is contained in:
109
lib/isc/app.c
109
lib/isc/app.c
@@ -52,7 +52,7 @@
|
||||
*/
|
||||
|
||||
static isc_thread_t blockedthread;
|
||||
static atomic_bool is_running;
|
||||
static atomic_bool is_running;
|
||||
|
||||
#ifdef WIN32
|
||||
/*
|
||||
@@ -64,7 +64,7 @@ static isc_thread_t main_thread;
|
||||
/*
|
||||
* The application context of this module.
|
||||
*/
|
||||
#define APPCTX_MAGIC ISC_MAGIC('A', 'p', 'c', 'x')
|
||||
#define APPCTX_MAGIC ISC_MAGIC('A', 'p', 'c', 'x')
|
||||
#define VALID_APPCTX(c) ISC_MAGIC_VALID(c, APPCTX_MAGIC)
|
||||
|
||||
#ifdef WIN32
|
||||
@@ -74,19 +74,19 @@ enum { RELOAD_EVENT, SHUTDOWN_EVENT };
|
||||
#endif /* WIN32 */
|
||||
|
||||
struct isc_appctx {
|
||||
unsigned int magic;
|
||||
isc_mem_t * mctx;
|
||||
isc_mutex_t lock;
|
||||
unsigned int magic;
|
||||
isc_mem_t *mctx;
|
||||
isc_mutex_t lock;
|
||||
isc_eventlist_t on_run;
|
||||
atomic_bool shutdown_requested;
|
||||
atomic_bool running;
|
||||
atomic_bool want_shutdown;
|
||||
atomic_bool want_reload;
|
||||
atomic_bool blocked;
|
||||
atomic_bool shutdown_requested;
|
||||
atomic_bool running;
|
||||
atomic_bool want_shutdown;
|
||||
atomic_bool want_reload;
|
||||
atomic_bool blocked;
|
||||
#ifdef WIN32
|
||||
HANDLE hEvents[NUM_EVENTS];
|
||||
#else /* WIN32 */
|
||||
isc_mutex_t readylock;
|
||||
isc_mutex_t readylock;
|
||||
isc_condition_t ready;
|
||||
#endif /* WIN32 */
|
||||
};
|
||||
@@ -95,8 +95,7 @@ static isc_appctx_t isc_g_appctx;
|
||||
|
||||
#ifndef WIN32
|
||||
static void
|
||||
handle_signal(int sig, void (*handler)(int))
|
||||
{
|
||||
handle_signal(int sig, void (*handler)(int)) {
|
||||
struct sigaction sa;
|
||||
|
||||
memset(&sa, 0, sizeof(sa));
|
||||
@@ -112,8 +111,7 @@ handle_signal(int sig, void (*handler)(int))
|
||||
#endif /* ifndef WIN32 */
|
||||
|
||||
isc_result_t
|
||||
isc_app_ctxstart(isc_appctx_t *ctx)
|
||||
{
|
||||
isc_app_ctxstart(isc_appctx_t *ctx) {
|
||||
REQUIRE(VALID_APPCTX(ctx));
|
||||
|
||||
/*
|
||||
@@ -144,9 +142,9 @@ isc_app_ctxstart(isc_appctx_t *ctx)
|
||||
/* Create the shutdown event in a non-signaled state */
|
||||
ctx->hEvents[SHUTDOWN_EVENT] = CreateEvent(NULL, FALSE, FALSE, NULL);
|
||||
#else /* WIN32 */
|
||||
int presult;
|
||||
sigset_t sset;
|
||||
char strbuf[ISC_STRERRORSIZE];
|
||||
int presult;
|
||||
sigset_t sset;
|
||||
char strbuf[ISC_STRERRORSIZE];
|
||||
|
||||
/*
|
||||
* Always ignore SIGPIPE.
|
||||
@@ -167,7 +165,8 @@ isc_app_ctxstart(isc_appctx_t *ctx)
|
||||
* sigwait() for them will get those signals.
|
||||
*/
|
||||
if (sigemptyset(&sset) != 0 || sigaddset(&sset, SIGHUP) != 0 ||
|
||||
sigaddset(&sset, SIGINT) != 0 || sigaddset(&sset, SIGTERM) != 0) {
|
||||
sigaddset(&sset, SIGINT) != 0 || sigaddset(&sset, SIGTERM) != 0)
|
||||
{
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
isc_error_fatal(__FILE__, __LINE__,
|
||||
"isc_app_start() sigsetops: %s", strbuf);
|
||||
@@ -185,8 +184,7 @@ isc_app_ctxstart(isc_appctx_t *ctx)
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
isc_app_start(void)
|
||||
{
|
||||
isc_app_start(void) {
|
||||
isc_g_appctx.magic = APPCTX_MAGIC;
|
||||
isc_g_appctx.mctx = NULL;
|
||||
/* The remaining members will be initialized in ctxstart() */
|
||||
@@ -196,17 +194,15 @@ isc_app_start(void)
|
||||
|
||||
isc_result_t
|
||||
isc_app_onrun(isc_mem_t *mctx, isc_task_t *task, isc_taskaction_t action,
|
||||
void *arg)
|
||||
{
|
||||
void *arg) {
|
||||
return (isc_app_ctxonrun(&isc_g_appctx, mctx, task, action, arg));
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
isc_app_ctxonrun(isc_appctx_t *ctx, isc_mem_t *mctx, isc_task_t *task,
|
||||
isc_taskaction_t action, void *arg)
|
||||
{
|
||||
isc_taskaction_t action, void *arg) {
|
||||
isc_event_t *event;
|
||||
isc_task_t * cloned_task = NULL;
|
||||
isc_task_t *cloned_task = NULL;
|
||||
|
||||
if (atomic_load_acquire(&ctx->running)) {
|
||||
return (ISC_R_ALREADYRUNNING);
|
||||
@@ -229,12 +225,11 @@ isc_app_ctxonrun(isc_appctx_t *ctx, isc_mem_t *mctx, isc_task_t *task,
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
isc_app_ctxrun(isc_appctx_t *ctx)
|
||||
{
|
||||
isc_app_ctxrun(isc_appctx_t *ctx) {
|
||||
isc_event_t *event, *next_event;
|
||||
isc_task_t * task;
|
||||
bool exp_false = false;
|
||||
bool exp_true = true;
|
||||
isc_task_t *task;
|
||||
bool exp_false = false;
|
||||
bool exp_true = true;
|
||||
|
||||
REQUIRE(VALID_APPCTX(ctx));
|
||||
|
||||
@@ -243,7 +238,8 @@ isc_app_ctxrun(isc_appctx_t *ctx)
|
||||
#endif /* ifdef WIN32 */
|
||||
|
||||
if (atomic_compare_exchange_weak_acq_rel(&ctx->running, &exp_false,
|
||||
true) == true) {
|
||||
true) == true)
|
||||
{
|
||||
/*
|
||||
* Post any on-run events (in FIFO order).
|
||||
*/
|
||||
@@ -300,7 +296,7 @@ isc_app_ctxrun(isc_appctx_t *ctx)
|
||||
#else /* WIN32 */
|
||||
if (isc_bind9) {
|
||||
sigset_t sset;
|
||||
int sig;
|
||||
int sig;
|
||||
/*
|
||||
* BIND9 internal; single context:
|
||||
* Wait for SIGHUP, SIGINT, or SIGTERM.
|
||||
@@ -308,7 +304,8 @@ isc_app_ctxrun(isc_appctx_t *ctx)
|
||||
if (sigemptyset(&sset) != 0 ||
|
||||
sigaddset(&sset, SIGHUP) != 0 ||
|
||||
sigaddset(&sset, SIGINT) != 0 ||
|
||||
sigaddset(&sset, SIGTERM) != 0) {
|
||||
sigaddset(&sset, SIGTERM) != 0)
|
||||
{
|
||||
char strbuf[ISC_STRERRORSIZE];
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
isc_error_fatal(__FILE__, __LINE__,
|
||||
@@ -354,7 +351,8 @@ isc_app_ctxrun(isc_appctx_t *ctx)
|
||||
}
|
||||
|
||||
if (atomic_load_acquire(&ctx->want_shutdown) &&
|
||||
atomic_load_acquire(&ctx->blocked)) {
|
||||
atomic_load_acquire(&ctx->blocked))
|
||||
{
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
@@ -363,10 +361,9 @@ isc_app_ctxrun(isc_appctx_t *ctx)
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
isc_app_run(void)
|
||||
{
|
||||
isc_app_run(void) {
|
||||
isc_result_t result;
|
||||
bool exp_false = false;
|
||||
bool exp_false = false;
|
||||
|
||||
REQUIRE(atomic_compare_exchange_weak_acq_rel(&is_running, &exp_false,
|
||||
true) == true);
|
||||
@@ -377,14 +374,12 @@ isc_app_run(void)
|
||||
}
|
||||
|
||||
bool
|
||||
isc_app_isrunning()
|
||||
{
|
||||
isc_app_isrunning() {
|
||||
return (atomic_load_acquire(&is_running));
|
||||
}
|
||||
|
||||
void
|
||||
isc_app_ctxshutdown(isc_appctx_t *ctx)
|
||||
{
|
||||
isc_app_ctxshutdown(isc_appctx_t *ctx) {
|
||||
bool exp_false = false;
|
||||
|
||||
REQUIRE(VALID_APPCTX(ctx));
|
||||
@@ -395,7 +390,8 @@ isc_app_ctxshutdown(isc_appctx_t *ctx)
|
||||
* down and we want to just bail out.
|
||||
*/
|
||||
if (atomic_compare_exchange_weak_acq_rel(&ctx->shutdown_requested,
|
||||
&exp_false, true)) {
|
||||
&exp_false, true))
|
||||
{
|
||||
#ifdef WIN32
|
||||
SetEvent(ctx->hEvents[SHUTDOWN_EVENT]);
|
||||
#else /* WIN32 */
|
||||
@@ -422,14 +418,12 @@ isc_app_ctxshutdown(isc_appctx_t *ctx)
|
||||
}
|
||||
|
||||
void
|
||||
isc_app_shutdown(void)
|
||||
{
|
||||
isc_app_shutdown(void) {
|
||||
isc_app_ctxshutdown(&isc_g_appctx);
|
||||
}
|
||||
|
||||
void
|
||||
isc_app_ctxsuspend(isc_appctx_t *ctx)
|
||||
{
|
||||
isc_app_ctxsuspend(isc_appctx_t *ctx) {
|
||||
REQUIRE(VALID_APPCTX(ctx));
|
||||
|
||||
REQUIRE(atomic_load(&ctx->running));
|
||||
@@ -464,14 +458,12 @@ isc_app_ctxsuspend(isc_appctx_t *ctx)
|
||||
}
|
||||
|
||||
void
|
||||
isc_app_reload(void)
|
||||
{
|
||||
isc_app_reload(void) {
|
||||
isc_app_ctxsuspend(&isc_g_appctx);
|
||||
}
|
||||
|
||||
void
|
||||
isc_app_ctxfinish(isc_appctx_t *ctx)
|
||||
{
|
||||
isc_app_ctxfinish(isc_appctx_t *ctx) {
|
||||
REQUIRE(VALID_APPCTX(ctx));
|
||||
|
||||
isc_mutex_destroy(&ctx->lock);
|
||||
@@ -482,14 +474,12 @@ isc_app_ctxfinish(isc_appctx_t *ctx)
|
||||
}
|
||||
|
||||
void
|
||||
isc_app_finish(void)
|
||||
{
|
||||
isc_app_finish(void) {
|
||||
isc_app_ctxfinish(&isc_g_appctx);
|
||||
}
|
||||
|
||||
void
|
||||
isc_app_block(void)
|
||||
{
|
||||
isc_app_block(void) {
|
||||
bool exp_false = false;
|
||||
REQUIRE(atomic_load_acquire(&isc_g_appctx.running));
|
||||
REQUIRE(atomic_compare_exchange_weak_acq_rel(&isc_g_appctx.blocked,
|
||||
@@ -508,8 +498,7 @@ isc_app_block(void)
|
||||
}
|
||||
|
||||
void
|
||||
isc_app_unblock(void)
|
||||
{
|
||||
isc_app_unblock(void) {
|
||||
bool exp_true = true;
|
||||
|
||||
REQUIRE(atomic_load_acquire(&isc_g_appctx.running));
|
||||
@@ -530,8 +519,7 @@ isc_app_unblock(void)
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
isc_appctx_create(isc_mem_t *mctx, isc_appctx_t **ctxp)
|
||||
{
|
||||
isc_appctx_create(isc_mem_t *mctx, isc_appctx_t **ctxp) {
|
||||
isc_appctx_t *ctx;
|
||||
|
||||
REQUIRE(mctx != NULL);
|
||||
@@ -550,8 +538,7 @@ isc_appctx_create(isc_mem_t *mctx, isc_appctx_t **ctxp)
|
||||
}
|
||||
|
||||
void
|
||||
isc_appctx_destroy(isc_appctx_t **ctxp)
|
||||
{
|
||||
isc_appctx_destroy(isc_appctx_t **ctxp) {
|
||||
isc_appctx_t *ctx;
|
||||
|
||||
REQUIRE(ctxp != NULL);
|
||||
|
Reference in New Issue
Block a user