mirror of https://gitee.com/bigwinds/arangodb
Merge branch 'master' of https://github.com/fceller/ArangoDB into devel
This commit is contained in:
commit
1a91bf0c14
|
@ -44,23 +44,7 @@ namespace triagens {
|
|||
GeneralListenTask& operator= (GeneralListenTask const&);
|
||||
|
||||
public:
|
||||
/*
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief listen to given address and port
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
GeneralListenTask (S* server, string const& address, int port, bool reuseAddress)
|
||||
: Task("GeneralListenTask"), ListenTask(address, port, reuseAddress), server(server) {
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief listen to given port
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
GeneralListenTask (S* server, int port, bool reuseAddress)
|
||||
: Task("GeneralListenTask"), ListenTask(port, reuseAddress), server(server) {
|
||||
}
|
||||
*/
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief listen to given port
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -403,6 +403,8 @@ void ApplicationScheduler::shutdown () {
|
|||
sleep(1);
|
||||
}
|
||||
|
||||
_scheduler->shutdown();
|
||||
|
||||
// delete the scheduler
|
||||
delete _scheduler;
|
||||
_scheduler = 0;
|
||||
|
|
|
@ -98,6 +98,10 @@ ListenTask::~ListenTask () {
|
|||
if (listenSocket != -1) {
|
||||
close(listenSocket);
|
||||
}
|
||||
|
||||
if (readWatcher != 0) {
|
||||
scheduler->uninstallEvent(readWatcher);
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
|
|
@ -46,6 +46,9 @@ PeriodicTask::PeriodicTask (double offset, double intervall)
|
|||
|
||||
|
||||
PeriodicTask::~PeriodicTask () {
|
||||
if (watcher != 0) {
|
||||
scheduler->uninstallEvent(watcher);
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
|
|
@ -209,6 +209,22 @@ bool Scheduler::isShutdownInProgress () {
|
|||
return stopping != 0;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief shuts down the scheduler
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void Scheduler::shutdown () {
|
||||
for (set<Task*>::iterator i = taskRegistered.begin();
|
||||
i != taskRegistered.end();
|
||||
++i) {
|
||||
deleteTask(*i);
|
||||
}
|
||||
|
||||
taskRegistered.clear();
|
||||
task2thread.clear();
|
||||
current.clear();
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief registers a new task
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -263,6 +279,8 @@ void Scheduler::unregisterTask (Task* task) {
|
|||
taskRegistered.erase(task);
|
||||
--current[task->getName()];
|
||||
}
|
||||
|
||||
task2thread.erase(i);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -155,6 +155,12 @@ namespace triagens {
|
|||
|
||||
bool isShutdownInProgress ();
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief shuts down the scheduler
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void shutdown ();
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief registers a new task
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
ignore errors caused by realloc(PTR,0)
|
||||
Memcheck:Leak
|
||||
fun:malloc
|
||||
fun:realloc
|
||||
fun:ev_realloc
|
||||
...
|
||||
}
|
Loading…
Reference in New Issue