OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 #include "vm/kernel_isolate.h" | 5 #include "vm/kernel_isolate.h" |
6 | 6 |
7 #include "vm/compiler.h" | 7 #include "vm/compiler.h" |
8 #include "include/dart_native_api.h" | 8 #include "include/dart_native_api.h" |
9 #include "vm/dart_api_impl.h" | 9 #include "vm/dart_api_impl.h" |
10 #include "vm/dart_entry.h" | 10 #include "vm/dart_entry.h" |
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
373 KernelCompilationRequest* rq = FindRequestLocked(port); | 373 KernelCompilationRequest* rq = FindRequestLocked(port); |
374 if (rq == NULL) { | 374 if (rq == NULL) { |
375 return; | 375 return; |
376 } | 376 } |
377 rq->HandleResponseImpl(message); | 377 rq->HandleResponseImpl(message); |
378 } | 378 } |
379 | 379 |
380 static void RegisterRequest(KernelCompilationRequest* rq) { | 380 static void RegisterRequest(KernelCompilationRequest* rq) { |
381 MonitorLocker locker(requests_monitor_); | 381 MonitorLocker locker(requests_monitor_); |
382 rq->next_ = requests_; | 382 rq->next_ = requests_; |
| 383 if (requests_ != NULL) { |
| 384 requests_->prev_ = rq; |
| 385 } |
383 requests_ = rq; | 386 requests_ = rq; |
384 } | 387 } |
385 | 388 |
386 static void UnregisterRequest(KernelCompilationRequest* rq) { | 389 static void UnregisterRequest(KernelCompilationRequest* rq) { |
387 MonitorLocker locker(requests_monitor_); | 390 MonitorLocker locker(requests_monitor_); |
388 if (rq->next_ != NULL) { | 391 if (rq->next_ != NULL) { |
389 rq->next_->prev_ = rq->prev_; | 392 rq->next_->prev_ = rq->prev_; |
390 } | 393 } |
391 if (rq->prev_ != NULL) { | 394 if (rq->prev_ != NULL) { |
392 rq->prev_->next_ = rq->next_; | 395 rq->prev_->next_ = rq->next_; |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
438 } | 441 } |
439 | 442 |
440 KernelCompilationRequest request; | 443 KernelCompilationRequest request; |
441 return request.SendAndWaitForResponse(kernel_port, script_uri); | 444 return request.SendAndWaitForResponse(kernel_port, script_uri); |
442 } | 445 } |
443 | 446 |
444 | 447 |
445 #endif // DART_PRECOMPILED_RUNTIME | 448 #endif // DART_PRECOMPILED_RUNTIME |
446 | 449 |
447 } // namespace dart | 450 } // namespace dart |
OLD | NEW |