The Pedigree Project 0.1
Public Member Functions | Static Public Member Functions | Private Attributes | Static Private Attributes | List of all members
ProcessGroupManager Class Reference

#include <PosixSubsystem.h>

+ Collaboration diagram for ProcessGroupManager:

Public Member Functions

size_t allocateGroupId ()
 
void setGroupId (size_t gid)
 
bool isGroupIdValid (size_t gid) const
 
void returnGroupId (size_t gid)
 
void registerGroup (size_t gid, ProcessGroup *group)
 
void unregisterGroup (size_t gid, ProcessGroup *group)
 
ProcessGroupfindGroup (size_t gid) const
 
Spinlocklock ()
 

Static Public Member Functions

static ProcessGroupManagerinstance ()
 

Private Attributes

ExtensibleBitmap m_GroupIds
 
ProcessGroupm_Groups
 
Spinlock m_GroupLock
 

Static Private Attributes

static ProcessGroupManager m_Instance
 

Detailed Description

Process group ID control.

Definition at line 136 of file PosixSubsystem.h.

Constructor & Destructor Documentation

◆ ProcessGroupManager()

ProcessGroupManager::ProcessGroupManager ( )

Definition at line 168 of file PosixSubsystem.cc.

◆ ~ProcessGroupManager()

ProcessGroupManager::~ProcessGroupManager ( )
virtual

Definition at line 172 of file PosixSubsystem.cc.

Member Function Documentation

◆ allocateGroupId()

size_t ProcessGroupManager::allocateGroupId ( )

Allocates a new process group ID, that hasn't yet been used.

Definition at line 174 of file PosixSubsystem.cc.

◆ findGroup()

ProcessGroup * ProcessGroupManager::findGroup ( size_t  gid) const

Caller must retain lock() while using the returned pointer.

Definition at line 223 of file PosixSubsystem.cc.

◆ instance()

static ProcessGroupManager & ProcessGroupManager::instance ( )
inlinestatic

Definition at line 141 of file PosixSubsystem.h.

◆ isGroupIdValid()

bool ProcessGroupManager::isGroupIdValid ( size_t  gid) const

Checks whether the given process group ID is used or not.

Definition at line 193 of file PosixSubsystem.cc.

◆ lock()

Spinlock & ProcessGroupManager::lock ( )
inline

Serialises process-group pointers, membership lists, and destruction.

Definition at line 165 of file PosixSubsystem.h.

◆ registerGroup()

void ProcessGroupManager::registerGroup ( size_t  gid,
ProcessGroup group 
)

Installs/removes the concrete group behind a reserved ID.

Definition at line 203 of file PosixSubsystem.cc.

◆ returnGroupId()

void ProcessGroupManager::returnGroupId ( size_t  gid)

Returns the given process group ID to the available pool.

Definition at line 198 of file PosixSubsystem.cc.

◆ setGroupId()

void ProcessGroupManager::setGroupId ( size_t  gid)

Forcibly set the given group ID as taken.

Definition at line 183 of file PosixSubsystem.cc.

◆ unregisterGroup()

void ProcessGroupManager::unregisterGroup ( size_t  gid,
ProcessGroup group 
)

Definition at line 211 of file PosixSubsystem.cc.

Member Data Documentation

◆ m_GroupIds

ExtensibleBitmap ProcessGroupManager::m_GroupIds
private

Bitmap of available group IDs.

Definition at line 174 of file PosixSubsystem.h.

◆ m_GroupLock

Spinlock ProcessGroupManager::m_GroupLock
mutableprivate

Definition at line 177 of file PosixSubsystem.h.

◆ m_Groups

ProcessGroup* ProcessGroupManager::m_Groups
private

Definition at line 175 of file PosixSubsystem.h.

◆ m_Instance

ProcessGroupManager ProcessGroupManager::m_Instance
staticprivate

Definition at line 170 of file PosixSubsystem.h.


The documentation for this class was generated from the following files: