| Index: sdk/lib/developer/extension.dart
|
| diff --git a/sdk/lib/developer/extension.dart b/sdk/lib/developer/extension.dart
|
| index f23b5ad5630b266f35c0ef1576cedf6595374ff8..24820f423139f8d42fbcc1db55e6ca14014f03de 100644
|
| --- a/sdk/lib/developer/extension.dart
|
| +++ b/sdk/lib/developer/extension.dart
|
| @@ -102,17 +102,17 @@ void registerExtension(String method, ServiceExtensionHandler handler) {
|
| _extensions[method] = handler;
|
| }
|
|
|
| -bool _scheduleExtension(String method,
|
| - List<String> parameterKeys,
|
| - List<String> parameterValues,
|
| - SendPort replyPort,
|
| - Object id) {
|
| +Function _scheduleExtension(String method,
|
| + List<String> parameterKeys,
|
| + List<String> parameterValues,
|
| + SendPort replyPort,
|
| + Object id) {
|
| ServiceExtensionHandler handler = _extensions[method];
|
| if (handler == null) {
|
| - return false;
|
| + return null;
|
| }
|
| - // Defer execution of handler until next event loop.
|
| - Timer.run(() {
|
| + // This closure will be executed at the next turn of the event loop.
|
| + return () {
|
| var parameters = {};
|
| for (var i = 0; i < parameterKeys.length; i++) {
|
| parameters[parameterKeys[i]] = parameterValues[i];
|
| @@ -148,8 +148,7 @@ bool _scheduleExtension(String method,
|
| }
|
| _postResponse(replyPort, id, response);
|
| });
|
| - });
|
| - return true;
|
| + };
|
| }
|
|
|
| _postResponse(SendPort replyPort,
|
|
|