isolatedImageConverter function
The isolated function to handle image conversion in a separate thread.
This function sets up a ReceivePort to listen for incoming messages.
When it receives an ImageFromMainThread
message, it processes the image
and sends back the result.
Implementation
@pragma('vm:entry-point')
void isolatedImageConverter(SendPort port) {
final receivePort = ReceivePort();
port.send(receivePort.sendPort);
Map<String, Completer> tasks = {};
receivePort.listen((dynamic message) async {
if (message is ImageConvertThreadRequest) {
_handleImageConvertRequest(message, port, tasks);
} else if (message is ThreadRequest) {
await _handleThreadRequest(message, port);
} else if (message is Map<String, String>) {
if (message.containsKey('mode') &&
message['mode'] == 'destroyActiveTasks') {
_handleKillRequest(message['ignoreTaskId']!, tasks);
}
}
});
}