greenplumn ITaskScheduler 源码

  • 2022-08-18
  • 浏览 (355)

greenplumn ITaskScheduler 代码

文件路径:/src/backend/gporca/libgpos/include/gpos/task/ITaskScheduler.h

//---------------------------------------------------------------------------
//	Greenplum Database
//	Copyright (C) 2010 Greenplum, Inc.
//
//	@filename:
//		ITaskScheduler.h
//
//	@doc:
//		Interface class for task scheduling
//---------------------------------------------------------------------------
#ifndef GPOS_ITaskScheduler_H
#define GPOS_ITaskScheduler_H

#include "gpos/types.h"

namespace gpos
{
// prototypes
class CTask;
class CTaskId;

//---------------------------------------------------------------------------
//	@class:
//		ITaskScheduler
//
//	@doc:
//		Interface for abstracting task scheduling primitives.
//
//---------------------------------------------------------------------------

class ITaskScheduler
{
private:
public:
	ITaskScheduler(const ITaskScheduler &) = delete;

	// dummy ctor
	ITaskScheduler() = default;

	// dummy dtor
	virtual ~ITaskScheduler() = default;

	// add task to waiting queue
	virtual void Enqueue(CTask *) = 0;

	// get next task to execute
	virtual CTask *Dequeue() = 0;

	// check if task is waiting to be scheduled and remove it
	virtual GPOS_RESULT Cancel(CTask *task) = 0;

	// get number of waiting tasks
	virtual ULONG GetQueueSize() = 0;

	// check if task queue is empty
	virtual BOOL IsEmpty() const = 0;

};	// class ITaskScheduler
}  // namespace gpos

#endif /* GPOS_ITaskScheduler_H */

// EOF

相关信息

greenplumn 源码目录

相关文章

greenplumn CAutoSuspendAbort 源码

greenplumn CAutoTaskProxy 源码

greenplumn CAutoTraceFlag 源码

greenplumn CTask 源码

greenplumn CTaskContext 源码

greenplumn CTaskId 源码

greenplumn CTaskLocalStorage 源码

greenplumn CTaskLocalStorageObject 源码

greenplumn CTaskSchedulerFifo 源码

greenplumn CTraceFlagIter 源码

0  赞