+3609. [bug] Corrected a possible deadlock in applications using
+ the export version of the isc_app API. [RT #33967]
+
3608. [port] win32: added todos.pl script to ensure all text files
the win32 build depends on are converted to DOS
newline format. [RT #22067]
* wait until woken up.
*/
LOCK(&ctx->readylock);
+ if (ctx->want_shutdown) {
+ /* shutdown() won the race. */
+ UNLOCK(&ctx->readylock);
+ break;
+ }
if (!ctx->want_reload)
WAIT(&ctx->ready, &ctx->readylock);
UNLOCK(&ctx->readylock);
* wait until woken up.
*/
LOCK(&ctx->readylock);
- WAIT(&ctx->ready, &ctx->readylock);
+ if (ctx->want_shutdown) {
+ /* shutdown() won the race. */
+ UNLOCK(&ctx->readylock);
+ break;
+ }
+ if (!ctx->want_reload)
+ WAIT(&ctx->ready, &ctx->readylock);
UNLOCK(&ctx->readylock);
}
#endif /* HAVE_SIGWAIT */
#endif /* HAVE_LINUXTHREADS */
else {
/* External, multiple contexts */
+ LOCK(&ctx->readylock);
ctx->want_shutdown = ISC_TRUE;
+ UNLOCK(&ctx->readylock);
SIGNAL(&ctx->ready);
}
#endif /* ISC_PLATFORM_USETHREADS */
#endif /* HAVE_LINUXTHREADS */
else {
/* External, multiple contexts */
+ LOCK(&ctx->readylock);
ctx->want_reload = ISC_TRUE;
+ UNLOCK(&ctx->readylock);
SIGNAL(&ctx->ready);
}
#endif /* ISC_PLATFORM_USETHREADS */