summaryrefslogtreecommitdiffstats
path: root/usr.sbin/bind/lib/isc/task.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/bind/lib/isc/task.c')
-rw-r--r--usr.sbin/bind/lib/isc/task.c46
1 files changed, 18 insertions, 28 deletions
diff --git a/usr.sbin/bind/lib/isc/task.c b/usr.sbin/bind/lib/isc/task.c
index 6a23f5c9c02..3dfe266b81c 100644
--- a/usr.sbin/bind/lib/isc/task.c
+++ b/usr.sbin/bind/lib/isc/task.c
@@ -24,13 +24,13 @@
*/
#include <config.h>
-
+#include <stdlib.h>
#include <isc/app.h>
#include <isc/condition.h>
#include <isc/event.h>
#include <isc/magic.h>
-#include <isc/mem.h>
+
#include <isc/msgs.h>
#include <isc/once.h>
#include <isc/platform.h>
@@ -106,7 +106,6 @@ typedef ISC_LIST(isc__task_t) isc__tasklist_t;
struct isc__taskmgr {
/* Not locked. */
isc_taskmgr_t common;
- isc_mem_t * mctx;
isc_mutex_t lock;
/* Locked by task manager lock. */
unsigned int default_quantum;
@@ -184,7 +183,7 @@ isc__task_gettag(isc_task_t *task0);
void
isc__task_getcurrenttime(isc_task_t *task0, isc_stdtime_t *t);
isc_result_t
-isc__taskmgr_create(isc_mem_t *mctx, unsigned int workers,
+isc__taskmgr_create(unsigned int workers,
unsigned int default_quantum, isc_taskmgr_t **managerp);
void
isc__taskmgr_destroy(isc_taskmgr_t **managerp);
@@ -278,7 +277,7 @@ task_finished(isc__task_t *task) {
DESTROYLOCK(&task->lock);
task->common.impmagic = 0;
task->common.magic = 0;
- isc_mem_put(manager->mctx, task, sizeof(*task));
+ free(task);
}
isc_result_t
@@ -293,14 +292,14 @@ isc__task_create(isc_taskmgr_t *manager0, unsigned int quantum,
REQUIRE(VALID_MANAGER(manager));
REQUIRE(taskp != NULL && *taskp == NULL);
- task = isc_mem_get(manager->mctx, sizeof(*task));
+ task = malloc(sizeof(*task));
if (task == NULL)
return (ISC_R_NOMEMORY);
XTRACE("isc_task_create");
task->manager = manager;
result = isc_mutex_init(&task->lock);
if (result != ISC_R_SUCCESS) {
- isc_mem_put(manager->mctx, task, sizeof(*task));
+ free(task);
return (result);
}
task->state = task_state_idle;
@@ -329,7 +328,7 @@ isc__task_create(isc_taskmgr_t *manager0, unsigned int quantum,
if (exiting) {
DESTROYLOCK(&task->lock);
- isc_mem_put(manager->mctx, task, sizeof(*task));
+ free(task);
return (ISC_R_SHUTTINGDOWN);
}
@@ -759,8 +758,7 @@ isc__task_onshutdown(isc_task_t *task0, isc_taskaction_t action,
REQUIRE(VALID_TASK(task));
REQUIRE(action != NULL);
- event = isc_event_allocate(task->manager->mctx,
- NULL,
+ event = isc_event_allocate(NULL,
ISC_TASKEVENT_SHUTDOWN,
action,
arg,
@@ -777,7 +775,7 @@ isc__task_onshutdown(isc_task_t *task0, isc_taskaction_t action,
UNLOCK(&task->lock);
if (disallowed)
- isc_mem_put(task->manager->mctx, event, sizeof(*event));
+ free(event);
return (result);
}
@@ -1154,21 +1152,18 @@ dispatch(isc__taskmgr_t *manager) {
static void
manager_free(isc__taskmgr_t *manager) {
- isc_mem_t *mctx;
DESTROYLOCK(&manager->lock);
DESTROYLOCK(&manager->excl_lock);
manager->common.impmagic = 0;
manager->common.magic = 0;
- mctx = manager->mctx;
- isc_mem_put(mctx, manager, sizeof(*manager));
- isc_mem_detach(&mctx);
+ free(manager);
taskmgr = NULL;
}
isc_result_t
-isc__taskmgr_create(isc_mem_t *mctx, unsigned int workers,
+isc__taskmgr_create(unsigned int workers,
unsigned int default_quantum, isc_taskmgr_t **managerp)
{
isc_result_t result;
@@ -1193,14 +1188,13 @@ isc__taskmgr_create(isc_mem_t *mctx, unsigned int workers,
return (ISC_R_SUCCESS);
}
- manager = isc_mem_get(mctx, sizeof(*manager));
+ manager = malloc(sizeof(*manager));
if (manager == NULL)
return (ISC_R_NOMEMORY);
manager->common.methods = &taskmgrmethods;
manager->common.impmagic = TASK_MANAGER_MAGIC;
manager->common.magic = ISCAPI_TASKMGR_MAGIC;
manager->mode = isc_taskmgrmode_normal;
- manager->mctx = NULL;
result = isc_mutex_init(&manager->lock);
if (result != ISC_R_SUCCESS)
goto cleanup_mgr;
@@ -1223,8 +1217,6 @@ isc__taskmgr_create(isc_mem_t *mctx, unsigned int workers,
manager->exiting = ISC_FALSE;
manager->excl = NULL;
- isc_mem_attach(mctx, &manager->mctx);
-
manager->refs = 1;
taskmgr = manager;
@@ -1233,7 +1225,7 @@ isc__taskmgr_create(isc_mem_t *mctx, unsigned int workers,
return (ISC_R_SUCCESS);
cleanup_mgr:
- isc_mem_put(mctx, manager, sizeof(*manager));
+ free(manager);
return (result);
}
@@ -1316,8 +1308,6 @@ isc__taskmgr_destroy(isc_taskmgr_t **managerp) {
UNLOCK(&manager->lock);
while (isc__taskmgr_ready((isc_taskmgr_t *)manager))
(void)isc__taskmgr_dispatch((isc_taskmgr_t *)manager);
- if (!ISC_LIST_EMPTY(manager->tasks))
- isc_mem_printallactive(stderr);
INSIST(ISC_LIST_EMPTY(manager->tasks));
taskmgr = NULL;
@@ -1497,7 +1487,7 @@ isc_task_register(isc_taskmgrcreatefunc_t createfunc) {
}
isc_result_t
-isc_taskmgr_createinctx(isc_mem_t *mctx, isc_appctx_t *actx,
+isc_taskmgr_createinctx(isc_appctx_t *actx,
unsigned int workers, unsigned int default_quantum,
isc_taskmgr_t **managerp)
{
@@ -1506,7 +1496,7 @@ isc_taskmgr_createinctx(isc_mem_t *mctx, isc_appctx_t *actx,
LOCK(&createlock);
REQUIRE(taskmgr_createfunc != NULL);
- result = (*taskmgr_createfunc)(mctx, workers, default_quantum,
+ result = (*taskmgr_createfunc)(workers, default_quantum,
managerp);
UNLOCK(&createlock);
@@ -1518,18 +1508,18 @@ isc_taskmgr_createinctx(isc_mem_t *mctx, isc_appctx_t *actx,
}
isc_result_t
-isc_taskmgr_create(isc_mem_t *mctx, unsigned int workers,
+isc_taskmgr_create(unsigned int workers,
unsigned int default_quantum, isc_taskmgr_t **managerp)
{
isc_result_t result;
if (isc_bind9)
- return (isc__taskmgr_create(mctx, workers,
+ return (isc__taskmgr_create(workers,
default_quantum, managerp));
LOCK(&createlock);
REQUIRE(taskmgr_createfunc != NULL);
- result = (*taskmgr_createfunc)(mctx, workers, default_quantum,
+ result = (*taskmgr_createfunc)(workers, default_quantum,
managerp);
UNLOCK(&createlock);