| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 part of vmservice_io; | 5 part of vmservice_io; |
| 6 | 6 |
| 7 _sanitizeWindowsPath(path) { | 7 _sanitizeWindowsPath(path) { |
| 8 // For Windows we need to massage the paths a bit according to | 8 // For Windows we need to massage the paths a bit according to |
| 9 // http://blogs.msdn.com/b/ie/archive/2006/12/06/file-uris-in-windows.aspx | 9 // http://blogs.msdn.com/b/ie/archive/2006/12/06/file-uris-in-windows.aspx |
| 10 // | 10 // |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 83 _rootScript = Uri.parse(rootScript); | 83 _rootScript = Uri.parse(rootScript); |
| 84 } | 84 } |
| 85 // If the --package-root flag was passed. | 85 // If the --package-root flag was passed. |
| 86 if (packageRootFlag != null) { | 86 if (packageRootFlag != null) { |
| 87 _setPackageRoot(packageRootFlag); | 87 _setPackageRoot(packageRootFlag); |
| 88 } | 88 } |
| 89 // If the --packages flag was passed. | 89 // If the --packages flag was passed. |
| 90 if (packagesConfigFlag != null) { | 90 if (packagesConfigFlag != null) { |
| 91 _setPackagesConfig(packagesConfigFlag); | 91 _setPackagesConfig(packagesConfigFlag); |
| 92 } | 92 } |
| 93 if (_fileRequestQueue == null) { | 93 } |
| 94 _fileRequestQueue = new List<FileRequest>(); | 94 |
| 95 } | 95 void updatePackageMap(String packagesConfigFlag) { |
| 96 _packageMap = null; |
| 97 _setPackagesConfig(packagesConfigFlag); |
| 96 } | 98 } |
| 97 | 99 |
| 98 void cleanup() { | 100 void cleanup() { |
| 99 _dead = true; | 101 _dead = true; |
| 100 if (_packagesPort != null) { | 102 if (_packagesPort != null) { |
| 101 _packagesPort.close(); | 103 _packagesPort.close(); |
| 102 _packagesPort = null; | 104 _packagesPort = null; |
| 103 } | 105 } |
| 104 } | 106 } |
| 105 | 107 |
| (...skipping 21 matching lines...) Expand all Loading... |
| 127 | 129 |
| 128 // The map describing how certain package names are mapped to Uris. | 130 // The map describing how certain package names are mapped to Uris. |
| 129 Uri _packageConfig = null; | 131 Uri _packageConfig = null; |
| 130 Map<String, Uri> _packageMap = null; | 132 Map<String, Uri> _packageMap = null; |
| 131 | 133 |
| 132 // We issue only 16 concurrent calls to File.readAsBytes() to stay within | 134 // We issue only 16 concurrent calls to File.readAsBytes() to stay within |
| 133 // platform-specific resource limits (e.g. max open files). The rest go on | 135 // platform-specific resource limits (e.g. max open files). The rest go on |
| 134 // _fileRequestQueue and are processed when we can safely issue them. | 136 // _fileRequestQueue and are processed when we can safely issue them. |
| 135 static const int _maxFileRequests = 16; | 137 static const int _maxFileRequests = 16; |
| 136 int currentFileRequests = 0; | 138 int currentFileRequests = 0; |
| 137 List<FileRequest> _fileRequestQueue; | 139 final List<FileRequest> _fileRequestQueue = new List<FileRequest>(); |
| 138 | 140 |
| 139 bool get shouldIssueFileRequest => currentFileRequests < _maxFileRequests; | 141 bool get shouldIssueFileRequest => currentFileRequests < _maxFileRequests; |
| 140 void enqueueFileRequest(FileRequest fr) { | 142 void enqueueFileRequest(FileRequest fr) { |
| 141 _fileRequestQueue.add(fr); | 143 _fileRequestQueue.add(fr); |
| 142 } | 144 } |
| 143 | 145 |
| 144 FileRequest dequeueFileRequest() { | 146 FileRequest dequeueFileRequest() { |
| 145 if (_fileRequestQueue.length == 0) { | 147 if (_fileRequestQueue.length == 0) { |
| 146 return null; | 148 return null; |
| 147 } | 149 } |
| (...skipping 879 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1027 case _Dart_kInitLoader: | 1029 case _Dart_kInitLoader: |
| 1028 { | 1030 { |
| 1029 String packageRoot = request[4]; | 1031 String packageRoot = request[4]; |
| 1030 String packagesFile = request[5]; | 1032 String packagesFile = request[5]; |
| 1031 String workingDirectory = request[6]; | 1033 String workingDirectory = request[6]; |
| 1032 String rootScript = request[7]; | 1034 String rootScript = request[7]; |
| 1033 if (loaderState == null) { | 1035 if (loaderState == null) { |
| 1034 loaderState = new IsolateLoaderState(isolateId); | 1036 loaderState = new IsolateLoaderState(isolateId); |
| 1035 isolateEmbedderData[isolateId] = loaderState; | 1037 isolateEmbedderData[isolateId] = loaderState; |
| 1036 loaderState.init( | 1038 loaderState.init( |
| 1037 packageRoot, packagesFile, workingDirectory, rootScript); | 1039 packageRoot, packagesFile, workingDirectory, rootScript); |
| 1040 } else { |
| 1041 loaderState.updatePackageMap(packagesFile); |
| 1038 } | 1042 } |
| 1039 loaderState.sp = sp; | 1043 loaderState.sp = sp; |
| 1040 assert(isolateEmbedderData[isolateId] == loaderState); | 1044 assert(isolateEmbedderData[isolateId] == loaderState); |
| 1041 } | 1045 } |
| 1042 break; | 1046 break; |
| 1043 case _Dart_kResourceLoad: | 1047 case _Dart_kResourceLoad: |
| 1044 { | 1048 { |
| 1045 Uri uri = Uri.parse(request[4]); | 1049 Uri uri = Uri.parse(request[4]); |
| 1046 _handleResourceRequest( | 1050 _handleResourceRequest( |
| 1047 loaderState, sp, traceLoading, tag, uri, uri, null); | 1051 loaderState, sp, traceLoading, tag, uri, uri, null); |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1150 msg[2] = resolvedUri.toString(); | 1154 msg[2] = resolvedUri.toString(); |
| 1151 msg[3] = null; | 1155 msg[3] = null; |
| 1152 msg[4] = e.toString(); | 1156 msg[4] = e.toString(); |
| 1153 sp.send(msg); | 1157 sp.send(msg); |
| 1154 } | 1158 } |
| 1155 break; | 1159 break; |
| 1156 default: | 1160 default: |
| 1157 _log('Unknown loader request tag=$tag from $isolateId'); | 1161 _log('Unknown loader request tag=$tag from $isolateId'); |
| 1158 } | 1162 } |
| 1159 } | 1163 } |
| OLD | NEW |