mirror of https://github.com/deavmi/tasky.git
Added a shutdown() method which should stop tristanable and eventy, along with stopping the tasky main loop
This commit is contained in:
parent
bcdc6121ca
commit
16ae65937a
2
dub.json
2
dub.json
|
@ -5,7 +5,7 @@
|
||||||
"copyright": "Copyright © 2021, Tristan B. Kildaire",
|
"copyright": "Copyright © 2021, Tristan B. Kildaire",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bformat": "~>3.1.3",
|
"bformat": "~>3.1.3",
|
||||||
"eventy": "0.2.1",
|
"eventy": "0.2.2",
|
||||||
"tristanable": "2.3.14"
|
"tristanable": "2.3.14"
|
||||||
},
|
},
|
||||||
"description": "Tagged network-message task engine",
|
"description": "Tagged network-message task engine",
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
"fileVersion": 1,
|
"fileVersion": 1,
|
||||||
"versions": {
|
"versions": {
|
||||||
"bformat": "3.1.3",
|
"bformat": "3.1.3",
|
||||||
"eventy": "0.2.1",
|
"eventy": "0.2.2",
|
||||||
"tristanable": "2.3.14"
|
"tristanable": "2.3.14"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,6 +26,8 @@ public final class Engine : Thread
|
||||||
*/
|
*/
|
||||||
private EvEngine evEngine;
|
private EvEngine evEngine;
|
||||||
|
|
||||||
|
private bool running;
|
||||||
|
|
||||||
this(Socket socket)
|
this(Socket socket)
|
||||||
{
|
{
|
||||||
/* Set the worker function */
|
/* Set the worker function */
|
||||||
|
@ -41,6 +43,7 @@ public final class Engine : Thread
|
||||||
tmanager = new Manager(socket);
|
tmanager = new Manager(socket);
|
||||||
|
|
||||||
/* Start the loop */
|
/* Start the loop */
|
||||||
|
running = true;
|
||||||
start();
|
start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,7 +65,7 @@ public final class Engine : Thread
|
||||||
*/
|
*/
|
||||||
private void worker()
|
private void worker()
|
||||||
{
|
{
|
||||||
while(true)
|
while(running)
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Loop through each queue, poll for
|
* Loop through each queue, poll for
|
||||||
|
@ -96,6 +99,21 @@ public final class Engine : Thread
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Stop the task engine
|
||||||
|
*/
|
||||||
|
public void shutdown()
|
||||||
|
{
|
||||||
|
/* Stop the loop */
|
||||||
|
running = false;
|
||||||
|
|
||||||
|
/* TODO: Stop tristsnable (must be implemented in tristanable first) */
|
||||||
|
tmanager.shutdown();
|
||||||
|
|
||||||
|
/* TODO: Stop eventy (mjst be implemented in eventy first) */
|
||||||
|
evEngine.shutdown();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Register a Descriptor with tasky
|
* Register a Descriptor with tasky
|
||||||
*/
|
*/
|
||||||
|
@ -125,6 +143,8 @@ public final class Engine : Thread
|
||||||
import std.string : cmp;
|
import std.string : cmp;
|
||||||
import std.datetime.stopwatch : StopWatch;
|
import std.datetime.stopwatch : StopWatch;
|
||||||
|
|
||||||
|
bool runDone;
|
||||||
|
|
||||||
/* Job type */
|
/* Job type */
|
||||||
Descriptor jobType = new class Descriptor {
|
Descriptor jobType = new class Descriptor {
|
||||||
public override void handler(Event e)
|
public override void handler(Event e)
|
||||||
|
@ -213,7 +233,7 @@ public final class Engine : Thread
|
||||||
writeln("Server send 4: ", clientSocket.send(encodeForSend(dMesg)));
|
writeln("Server send 4: ", clientSocket.send(encodeForSend(dMesg)));
|
||||||
|
|
||||||
|
|
||||||
while(true)
|
while(!runDone)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -245,10 +265,15 @@ public final class Engine : Thread
|
||||||
{
|
{
|
||||||
if(watch.peek() > dur!("seconds")(4))
|
if(watch.peek() > dur!("seconds")(4))
|
||||||
{
|
{
|
||||||
|
runDone = true;
|
||||||
assert(false);
|
assert(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
runDone = true;
|
||||||
|
|
||||||
|
|
||||||
/* TODO: Shutdown tasky here (shutdown eventy and tristanable) */
|
/* TODO: Shutdown tasky here (shutdown eventy and tristanable) */
|
||||||
|
e.shutdown();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue