Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pigeon] switched to using isolates instead of subprocesses to run pigeon_lib #210

Merged
merged 4 commits into from
Sep 25, 2020

Conversation

gaaclarke
Copy link
Member

Started spawning pigeon_lib in an isolate instead of a subprocess. The subprocess could have lead to errors if the dart version on $PATH didn't match the one that comes with Flutter when running through flutter pub run.

@gaaclarke gaaclarke requested a review from xster September 23, 2020 23:48
Copy link
Member

@xster xster left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

void main(List<String> args) async {
exit(await Pigeon.run(args));
void main(List<String> args, SendPort sendPort) async {
sendPort.send(await Pigeon.run(args));
}
""";
// TODO(aaclarke): Start using a system temp file.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yea, that API isn't so helpful though because I should probably make a temp directory in there instead of placing the file directly in the system temp. It would be nice if we had something like mktemp -d. At the very least i need a GUID to make sure I don't collide. I'll get around to this later.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, dang you, I did it, haha. I had to do some trickery to get relative paths for the dart imports. Now it says stuff like:

import '../../../../../../Users/aaclarke/dev/packages/packages/pigeon/pigeons/message.dart';

I didn't check to see if dart actually supports absolute path imports.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would this whole problem go away once we do flutter/flutter#65071?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think so. There always has to be a link between the generated code that the isolate executes and the pigeon file.

@gaaclarke gaaclarke merged commit 306bc50 into flutter:master Sep 25, 2020
stuartmorgan pushed a commit to stuartmorgan/packages that referenced this pull request Apr 30, 2021
austinstoker pushed a commit to austinstoker/packages that referenced this pull request Apr 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants