NCBI C++ ToolKit
|
Search Toolkit Book for CMMFlusher
Public Member Functions | |
CMMFlusher (void) | |
virtual | ~CMMFlusher (void) |
Public Member Functions inherited from CSrvTask | |
CSrvTask (void) | |
void | SetRunnable (bool boost=false) |
Set this task "runnable", i.e. More... | |
void | RunAfter (Uint4 delay_sec) |
This call is basically equivalent to SetRunnable() but with guarantee that task will be scheduled for execution no earlier than delay_sec later (approximately, can be up to a second less if measured in absolute wall time). More... | |
virtual void | Terminate (void) |
Stops task's execution and deletes it. More... | |
void | SetPriority (Uint4 prty) |
Set and retrieve task's priority. More... | |
Uint4 | GetPriority (void) |
void | CreateNewDiagCtx (void) |
Create new diagnostic context for this task to work in. More... | |
void | SetDiagCtx (CRequestContext *ctx) |
Set diagnostic context for this task to work in. More... | |
CRequestContext * | GetDiagCtx (void) |
Get current diagnostic context for the task. More... | |
void | ReleaseDiagCtx (void) |
Releases current diagnostic context of the task. More... | |
virtual | ~CSrvTask (void) |
virtual void | InternalRunSlice (TSrvThreadNum thr_num) |
This is the real time slice execution method called from TaskServer. More... | |
Private Member Functions | |
virtual void | ExecuteSlice (TSrvThreadNum thr_num) |
This is the main method to do all work this task should do. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from CSrvTask | |
static void | PrintState (CSrvSocketTask &task) |
Public Attributes inherited from CSrvTask | |
TSrvTaskListHook | m_TaskListHook |
Hook to put this task into TSrvTaskList. More... | |
TSrvThreadNum | m_LastThread |
Thread number where this task was executed last time. More... | |
TSrvTaskFlags | m_TaskFlags |
Bit-OR of flags for this task. More... | |
int | m_LastActive |
Time (in seconds) when the task was active last time, i.e. More... | |
Uint4 | m_Priority |
Task's priority. More... | |
CRequestContext * | m_DiagCtx |
Current diagnostic context for this task. More... | |
CRequestContext ** | m_DiagChain |
Nested diagnostic contexts of this task. More... | |
size_t | m_DiagChainSize |
STimerTicket * | m_Timer |
Timer ticket assigned to this task when it calls RunAfter(). More... | |
CSrvTaskTerminator | m_Terminator |
Object that will delete this task after call to Terminate(). More... | |
Definition at line 122 of file memory_man.cpp.
CMMFlusher::CMMFlusher | ( | void | ) |
Definition at line 1115 of file memory_man.cpp.
|
virtual |
Definition at line 1122 of file memory_man.cpp.
|
privatevirtual |
This is the main method to do all work this task should do.
This method will be called periodically while somebody calls SetRunnable() or RunAfter() on this task. But number of calls to this method won't match number of calls to SetRunnable() – if several calls to SetRunnable() are made before ExecuteSlice() had a chance to execute it will be called only once. Task's code inside ExecuteSlice() should understand itself how much work it needs to do and call SetRunnable() again if needed (or do all the work before returning from ExecuteSlice()). Parameter thr_num is number of thread on which ExecuteSlice() is called.
Implements CSrvTask.
Definition at line 1126 of file memory_man.cpp.
References SMMBlocksPool::blocks, buffer, SMMBlocksPool::cnt_avail, SMMMemPoolsSet::flush_counter, GetCurThread(), i, CTaskServer::IsInShutdown(), kMMCntBlocksInPool, kMMCntBlockSizes, kMMFlushPeriod, CMiniMutex::Lock(), SSrvThread::mm_pool, SMMBlocksPool::pool_lock, SMMMemPoolsSet::pools, CSrvTask::RunAfter(), s_GlobalPoolsSet, s_ReleaseToFreePages(), SMMMemPoolsSet::stat, and CMiniMutex::Unlock().