Skip to content

Instantly share code, notes, and snippets.

@FaisalAbid
Last active August 29, 2015 14:18
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save FaisalAbid/8c90cd2ae3e3dd20a4ab to your computer and use it in GitHub Desktop.
Save FaisalAbid/8c90cd2ae3e3dd20a4ab to your computer and use it in GitHub Desktop.
Keep your dart server running via an isolate
import 'dart:io';
import 'dart:isolate';
void main(List<String> args) {
var sPort = new ReceivePort();
spawnIsolate(sPort.sendPort);
sPort.listen((message) {
if (message == null) {
spawnIsolate(sPort.sendPort);
} else {
print(message);
}
});
}
spawnIsolate(SendPort sendPort) async {
Isolate mainRunner = await Isolate.spawn(startServer, sendPort, paused:true);
mainRunner.addOnExitListener(sendPort);
mainRunner.addErrorListener(sendPort);
mainRunner.resume(mainRunner.pauseCapability);
return mainRunner;
}
startServer(SendPort sendPort) {
server.startServer();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment