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&);
|
GeneralListenTask& operator= (GeneralListenTask const&);
|
||||||
|
|
||||||
public:
|
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
|
/// @brief listen to given port
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -403,6 +403,8 @@ void ApplicationScheduler::shutdown () {
|
||||||
sleep(1);
|
sleep(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_scheduler->shutdown();
|
||||||
|
|
||||||
// delete the scheduler
|
// delete the scheduler
|
||||||
delete _scheduler;
|
delete _scheduler;
|
||||||
_scheduler = 0;
|
_scheduler = 0;
|
||||||
|
|
|
@ -98,6 +98,10 @@ ListenTask::~ListenTask () {
|
||||||
if (listenSocket != -1) {
|
if (listenSocket != -1) {
|
||||||
close(listenSocket);
|
close(listenSocket);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (readWatcher != 0) {
|
||||||
|
scheduler->uninstallEvent(readWatcher);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
|
|
|
@ -46,6 +46,9 @@ PeriodicTask::PeriodicTask (double offset, double intervall)
|
||||||
|
|
||||||
|
|
||||||
PeriodicTask::~PeriodicTask () {
|
PeriodicTask::~PeriodicTask () {
|
||||||
|
if (watcher != 0) {
|
||||||
|
scheduler->uninstallEvent(watcher);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
|
|
|
@ -209,6 +209,22 @@ bool Scheduler::isShutdownInProgress () {
|
||||||
return stopping != 0;
|
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
|
/// @brief registers a new task
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -263,6 +279,8 @@ void Scheduler::unregisterTask (Task* task) {
|
||||||
taskRegistered.erase(task);
|
taskRegistered.erase(task);
|
||||||
--current[task->getName()];
|
--current[task->getName()];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
task2thread.erase(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -155,6 +155,12 @@ namespace triagens {
|
||||||
|
|
||||||
bool isShutdownInProgress ();
|
bool isShutdownInProgress ();
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/// @brief shuts down the scheduler
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
void shutdown ();
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
/// @brief registers a new task
|
/// @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