KENSv3
KAIST Educational Network System
Public Types | Public Member Functions | Protected Member Functions | Friends | List of all members
E::Runnable Class Referenceabstract

Runnable is executed via System. The total ordering of execution is guaranteed by the System. More...

#include <E_System.hpp>

Inheritance diagram for E::Runnable:
E::SystemCallApplication E::TCPApplication EchoAssignment TestBind_DifferentIP_SamePort TestBind_DoubleBind TestBind_GetSockName TestBind_OverlapClosed TestBind_OverlapPort TestBind_SameIP_DifferentPort TestBind_Simple TestClose_Accept TestClose_Connect TestCongestion_Accept TestCongestion_Connect TestHandshake_Accept TestHandshake_Connect TestHandshake_SimultaneousConnect TestOpen TestTransfer_Accept TestTransfer_Connect

Public Types

enum class  State {
  CREATED , STARTING , READY , RUNNING ,
  WAITING , TERMINATED
}
 

Public Member Functions

virtual void start () final
 Start and prepare (CREATED -> READY)
 
virtual State wake () final
 Wake and keep running (READY -> RUNNING) More...
 
virtual void ready () final
 Mark ready (WAITING -> READY)
 

Protected Member Functions

 Runnable ()
 Constructs a Runnable interface.
 
virtual void wait () final
 Enter wait state (RUNNING -> WAITING)
 
virtual void pre_main ()
 Prepare logic.
 
virtual void main ()=0
 Program logic.
 
virtual void run () final
 Thread code.
 

Friends

class System
 

Detailed Description

Runnable is executed via System. The total ordering of execution is guaranteed by the System.

Note
You cannot instantiate this class. You must inherit this class to use.
See also
System

Member Function Documentation

◆ wake()

Runnable::State E::Runnable::wake ( )
finalvirtual

Wake and keep running (READY -> RUNNING)

Returns
next state
Note
Scheduler will be blocked

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