@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2008 Tobias Brunner
|
* Copyright (C) 2008-2015 Tobias Brunner
|
||||||
* Copyright (C) 2005-2006 Martin Willi
|
* Copyright (C) 2005-2006 Martin Willi
|
||||||
* Copyright (C) 2005 Jan Hutter
|
* Copyright (C) 2005 Jan Hutter
|
||||||
* Hochschule fuer Technik Rapperswil
|
* Hochschule fuer Technik Rapperswil
|
||||||
@@ -300,16 +300,26 @@ METHOD(scheduler_t, schedule_job_ms, void,
|
|||||||
schedule_job_tv(this, job, tv);
|
schedule_job_tv(this, job, tv);
|
||||||
}
|
}
|
||||||
|
|
||||||
METHOD(scheduler_t, destroy, void,
|
METHOD(scheduler_t, flush, void,
|
||||||
private_scheduler_t *this)
|
private_scheduler_t *this)
|
||||||
{
|
{
|
||||||
event_t *event;
|
event_t *event;
|
||||||
this->condvar->destroy(this->condvar);
|
|
||||||
this->mutex->destroy(this->mutex);
|
this->mutex->lock(this->mutex);
|
||||||
while ((event = remove_event(this)) != NULL)
|
while ((event = remove_event(this)) != NULL)
|
||||||
{
|
{
|
||||||
event_destroy(event);
|
event_destroy(event);
|
||||||
}
|
}
|
||||||
|
this->condvar->signal(this->condvar);
|
||||||
|
this->mutex->unlock(this->mutex);
|
||||||
|
}
|
||||||
|
|
||||||
|
METHOD(scheduler_t, destroy, void,
|
||||||
|
private_scheduler_t *this)
|
||||||
|
{
|
||||||
|
flush(this);
|
||||||
|
this->condvar->destroy(this->condvar);
|
||||||
|
this->mutex->destroy(this->mutex);
|
||||||
free(this->heap);
|
free(this->heap);
|
||||||
free(this);
|
free(this);
|
||||||
}
|
}
|
||||||
@@ -328,6 +338,7 @@ scheduler_t * scheduler_create()
|
|||||||
.schedule_job = _schedule_job,
|
.schedule_job = _schedule_job,
|
||||||
.schedule_job_ms = _schedule_job_ms,
|
.schedule_job_ms = _schedule_job_ms,
|
||||||
.schedule_job_tv = _schedule_job_tv,
|
.schedule_job_tv = _schedule_job_tv,
|
||||||
|
.flush = _flush,
|
||||||
.destroy = _destroy,
|
.destroy = _destroy,
|
||||||
},
|
},
|
||||||
.heap_size = HEAP_SIZE_DEFAULT,
|
.heap_size = HEAP_SIZE_DEFAULT,
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2009 Tobias Brunner
|
* Copyright (C) 2009-2015 Tobias Brunner
|
||||||
* Copyright (C) 2005-2007 Martin Willi
|
* Copyright (C) 2005-2007 Martin Willi
|
||||||
* Copyright (C) 2005 Jan Hutter
|
* Copyright (C) 2005 Jan Hutter
|
||||||
* Hochschule fuer Technik Rapperswil
|
* Hochschule fuer Technik Rapperswil
|
||||||
@@ -114,6 +114,11 @@ struct scheduler_t {
|
|||||||
*/
|
*/
|
||||||
u_int (*get_job_load) (scheduler_t *this);
|
u_int (*get_job_load) (scheduler_t *this);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove all scheduled jobs.
|
||||||
|
*/
|
||||||
|
void (*flush)(scheduler_t *this);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Destroys a scheduler object.
|
* Destroys a scheduler object.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user