Skip to content

Commit 95f5efc

Browse files
aamCommit Queue
authored andcommitted
[vm/concurrent] Use ffi native resolver for dart:concurrent native functions.
Ffi native interface should be faster, more effecient for Dart->C++ communication, so switching to it. TEST=ci Change-Id: I9e1d18a666737799194c0435c300e4b81783c0ec Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/377541 Commit-Queue: Alexander Aprelev <[email protected]> Reviewed-by: Daco Harkes <[email protected]>
1 parent f7c4bcf commit 95f5efc

35 files changed

+449
-448
lines changed

runtime/bin/BUILD.gn

Lines changed: 4 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import("../vm/vm_sources.gni")
1414
import("builtin_impl_sources.gni")
1515
import("builtin_sources.gni")
1616
import("cli_sources.gni")
17-
import("concurrent_impl_sources.gni")
1817
import("io_impl_sources.gni")
1918
import("io_sources.gni")
2019
import("native_assets_impl_sources.gni")
@@ -136,37 +135,11 @@ build_native_assets_api("native_assets_api_product") {
136135
]
137136
}
138137

139-
template("build_concurrent_api") {
140-
extra_configs = []
141-
if (defined(invoker.extra_configs)) {
142-
extra_configs += invoker.extra_configs
143-
}
144-
source_set(target_name) {
145-
configs += [ "..:dart_config" ] + extra_configs
146-
deps = []
147-
include_dirs = [ ".." ]
148-
sources = concurrent_api_sources
149-
sources += [
150-
"concurrent_natives.cc",
151-
"concurrent_natives.h",
152-
]
153-
}
154-
}
155-
156-
build_concurrent_api("concurrent_api") {
157-
extra_configs = [
158-
"..:dart_maybe_product_config",
159-
"..:dart_os_config",
160-
"..:dart_arch_config",
161-
]
138+
# TODO(aam): Remove once https://dart-review.googlesource.com/c/sdk/+/377541
139+
# rolls into flutter engine.
140+
source_set("concurrent_api") {
162141
}
163-
164-
build_concurrent_api("concurrent_api_product") {
165-
extra_configs = [
166-
"..:dart_product_config",
167-
"..:dart_os_config",
168-
"..:dart_arch_config",
169-
]
142+
source_set("concurrent_api_product") {
170143
}
171144

172145
static_library("crashpad") {
@@ -881,12 +854,6 @@ template("dart_executable") {
881854
deps += [ ":standalone_dart_io" ]
882855
}
883856

884-
if (use_product_mode) {
885-
deps += [ ":concurrent_api_product" ]
886-
} else {
887-
deps += [ ":concurrent_api" ]
888-
}
889-
890857
configs += [ ":export_api_symbols" ]
891858

892859
ldflags = extra_ldflags
@@ -1133,7 +1100,6 @@ executable("run_vm_tests") {
11331100
}
11341101

11351102
deps = [
1136-
":concurrent_api",
11371103
":crashpad",
11381104
":dart_kernel_platform_cc",
11391105
":dart_snapshot_cc",

runtime/bin/builtin_natives.cc

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
#include "platform/assert.h"
1414

1515
#include "bin/builtin.h"
16-
#include "bin/concurrent_natives.h"
1716
#include "bin/dartutils.h"
1817
#include "bin/file.h"
1918
#include "bin/io_natives.h"
@@ -25,8 +24,7 @@ namespace bin {
2524
// Lists the native functions implementing basic functionality in
2625
// standalone dart, such as printing, file I/O, and platform information.
2726
// Advanced I/O classes like sockets and process management are implemented
28-
// using functions listed in io_natives.cc and synchronization primitives -
29-
// in concurrent_natives.cc.
27+
// using functions listed in io_natives.cc.
3028
#define BUILTIN_NATIVE_LIST(V) V(Builtin_PrintString, 1)
3129

3230
BUILTIN_NATIVE_LIST(DECLARE_FUNCTION);
@@ -65,10 +63,6 @@ Dart_NativeFunction Builtin::NativeLookup(Dart_Handle name,
6563
}
6664
Dart_NativeFunction result =
6765
IONativeLookup(name, argument_count, auto_setup_scope);
68-
if (result != nullptr) {
69-
return result;
70-
}
71-
result = ConcurrentNativeLookup(name, argument_count, auto_setup_scope);
7266
if (result == nullptr) {
7367
result = Builtin_DummyNative;
7468
}

runtime/bin/concurrent.cc

Lines changed: 0 additions & 104 deletions
This file was deleted.

runtime/bin/concurrent_natives.cc

Lines changed: 0 additions & 63 deletions
This file was deleted.

runtime/bin/concurrent_natives.h

Lines changed: 0 additions & 22 deletions
This file was deleted.

runtime/bin/thread.h

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -69,25 +69,9 @@ class Mutex {
6969
private:
7070
MutexData data_;
7171

72-
friend class ConditionVariable;
73-
7472
DISALLOW_COPY_AND_ASSIGN(Mutex);
7573
};
7674

77-
class ConditionVariable {
78-
public:
79-
ConditionVariable();
80-
~ConditionVariable();
81-
82-
void Wait(Mutex* mutex);
83-
void Notify();
84-
85-
private:
86-
ConditionVariableData data_;
87-
88-
DISALLOW_COPY_AND_ASSIGN(ConditionVariable);
89-
};
90-
9175
class Monitor {
9276
public:
9377
enum WaitResult { kNotified, kTimedOut };

runtime/bin/thread_absl.cc

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -150,19 +150,6 @@ void Mutex::Unlock() {
150150
data_.mutex()->Unlock();
151151
}
152152

153-
ConditionVariable::ConditionVariable() {}
154-
155-
ConditionVariable::~ConditionVariable() {}
156-
157-
ABSL_NO_THREAD_SAFETY_ANALYSIS
158-
void ConditionVariable::Wait(Mutex* mutex) {
159-
data_.cond()->Wait(mutex->data_.mutex());
160-
}
161-
162-
void ConditionVariable::Notify() {
163-
data_.cond()->Signal();
164-
}
165-
166153
Monitor::Monitor() : data_() {}
167154

168155
Monitor::~Monitor() {}

runtime/bin/thread_absl.h

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -30,27 +30,11 @@ class MutexData {
3030
absl::Mutex mutex_;
3131

3232
friend class Mutex;
33-
friend class ConditionVariable;
3433

3534
DISALLOW_ALLOCATION();
3635
DISALLOW_COPY_AND_ASSIGN(MutexData);
3736
};
3837

39-
class ConditionVariableData {
40-
private:
41-
ConditionVariableData() : cond_() {}
42-
~ConditionVariableData() {}
43-
44-
absl::CondVar* cond() { return &cond_; }
45-
46-
absl::CondVar cond_;
47-
48-
friend class ConditionVariable;
49-
50-
DISALLOW_ALLOCATION();
51-
DISALLOW_COPY_AND_ASSIGN(ConditionVariableData);
52-
};
53-
5438
class MonitorData {
5539
private:
5640
MonitorData() : mutex_(), cond_() {}

0 commit comments

Comments
 (0)