Home
last modified time | relevance | path

Searched refs:state (Results 1 – 25 of 412) sorted by relevance

12345678910>>...17

/system/chre/chpp/clients/
Dtimesync.c60 struct ChppTimesyncClientState *state = appState->timesyncClientContext; in chppTimesyncClientInit() local
62 memset(state, 0, sizeof(struct ChppTimesyncClientState)); in chppTimesyncClientInit()
63 state->client.appContext = appState; in chppTimesyncClientInit()
64 state->timesyncResult.error = CHPP_APP_ERROR_NONE; in chppTimesyncClientInit()
66 chppClientInit(&state->client, CHPP_HANDLE_TIMESYNC); in chppTimesyncClientInit()
67 state->timesyncResult.error = CHPP_APP_ERROR_UNSPECIFIED; in chppTimesyncClientInit()
68 state->client.openState = CHPP_OPEN_STATE_OPENED; in chppTimesyncClientInit()
82 struct ChppTimesyncClientState *state = appState->timesyncClientContext; in chppTimesyncClientReset() local
83 CHPP_NOT_NULL(state); in chppTimesyncClientReset()
85 state->timesyncResult.error = CHPP_APP_ERROR_NONE; in chppTimesyncClientReset()
[all …]
Dloopback.c63 struct ChppLoopbackClientState *state = appState->loopbackClientContext; in chppLoopbackClientInit() local
64 memset(state, 0, sizeof(struct ChppLoopbackClientState)); in chppLoopbackClientInit()
66 state->client.appContext = appState; in chppLoopbackClientInit()
67 chppClientInit(&state->client, CHPP_HANDLE_LOOPBACK); in chppLoopbackClientInit()
68 state->testResult.error = CHPP_APP_ERROR_NONE; in chppLoopbackClientInit()
69 state->client.openState = CHPP_OPEN_STATE_OPENED; in chppLoopbackClientInit()
87 struct ChppLoopbackClientState *state = appState->loopbackClientContext; in chppDispatchLoopbackServiceResponse() local
88 CHPP_NOT_NULL(state); in chppDispatchLoopbackServiceResponse()
89 CHPP_NOT_NULL(state->loopbackData); in chppDispatchLoopbackServiceResponse()
92 chppClientTimestampResponse(&state->client, &state->runLoopbackTest, in chppDispatchLoopbackServiceResponse()
[all …]
/system/unwinding/libunwindstack/benchmarks/
DSymbolBenchmark.cpp32 static void BenchmarkSymbolLookup(benchmark::State& state, std::vector<uint64_t> offsets, in BenchmarkSymbolLookup() argument
38 for (auto _ : state) { in BenchmarkSymbolLookup()
39 state.PauseTiming(); in BenchmarkSymbolLookup()
46 state.ResumeTiming(); in BenchmarkSymbolLookup()
66 state.PauseTiming(); in BenchmarkSymbolLookup()
75 state.ResumeTiming(); in BenchmarkSymbolLookup()
79 state.counters["RSS_BYTES"] = rss_bytes / static_cast<double>(state.iterations()); in BenchmarkSymbolLookup()
81 state.counters["ALLOCATED_BYTES"] = alloc_bytes / static_cast<double>(state.iterations()); in BenchmarkSymbolLookup()
84 static void BenchmarkSymbolLookup(benchmark::State& state, uint64_t pc, std::string elf_file, in BenchmarkSymbolLookup() argument
86 BenchmarkSymbolLookup(state, std::vector<uint64_t>{pc}, elf_file, expect_found, runs); in BenchmarkSymbolLookup()
[all …]
DElfBenchmark.cpp32 static void BenchmarkElfCreate(benchmark::State& state, const std::string& elf_file) { in BenchmarkElfCreate() argument
37 for (auto _ : state) { in BenchmarkElfCreate()
38 state.PauseTiming(); in BenchmarkElfCreate()
46 state.ResumeTiming(); in BenchmarkElfCreate()
53 state.PauseTiming(); in BenchmarkElfCreate()
62 state.ResumeTiming(); in BenchmarkElfCreate()
66 state.counters["RSS_BYTES"] = rss_bytes / static_cast<double>(state.iterations()); in BenchmarkElfCreate()
68 state.counters["ALLOCATED_BYTES"] = alloc_bytes / static_cast<double>(state.iterations()); in BenchmarkElfCreate()
71 void BM_elf_create(benchmark::State& state) { in BM_elf_create() argument
72 BenchmarkElfCreate(state, GetElfFile()); in BM_elf_create()
[all …]
Dlocal_unwind_benchmarks.cpp61 static void Run(benchmark::State& state, size_t (*func)(void*), void* data) { in Run() argument
62 for (auto _ : state) { in Run()
64 state.SkipWithError("Failed to unwind."); in Run()
79 static void BM_local_unwind_uncached_process_memory(benchmark::State& state) { in BM_local_unwind_uncached_process_memory() argument
83 state.SkipWithError("Failed to parse local maps."); in BM_local_unwind_uncached_process_memory()
87 Run(state, Unwind, &data); in BM_local_unwind_uncached_process_memory()
91 static void BM_local_unwind_cached_process_memory(benchmark::State& state) { in BM_local_unwind_cached_process_memory() argument
95 state.SkipWithError("Failed to parse local maps."); in BM_local_unwind_cached_process_memory()
99 Run(state, Unwind, &data); in BM_local_unwind_cached_process_memory()
103 static void BM_local_android_unwind_uncached_process_memory(benchmark::State& state) { in BM_local_android_unwind_uncached_process_memory() argument
[all …]
DOfflineUnwindBenchmarks.cpp45 void SetUp(benchmark::State& state) override { in SetUp() argument
47 unwind_case_ = state.range(0) ? kSteadyState : kStartup; in SetUp()
48 resolve_names_ = state.range(1); in SetUp()
52 void TearDown(benchmark::State& state) override { in TearDown() argument
54 mem_tracker_.SetBenchmarkCounters(state); in TearDown()
57 void SingleUnwindBenchmark(benchmark::State& state, const UnwindSampleInfo& sample_info) { in SingleUnwindBenchmark() argument
60 state.SkipWithError(error_msg.c_str()); in SingleUnwindBenchmark()
63 BenchmarkOfflineUnwindMultipleSamples(state, std::vector<UnwindSampleInfo>{sample_info}); in SingleUnwindBenchmark()
66 void ConsecutiveUnwindBenchmark(benchmark::State& state, in ConsecutiveUnwindBenchmark() argument
70 state.SkipWithError(error_msg.c_str()); in ConsecutiveUnwindBenchmark()
[all …]
DEvalBenchmark.cpp48 void TearDown(benchmark::State& state) override { mem_tracker_.SetBenchmarkCounters(state); } in TearDown() argument
63 void RunBenchmark(benchmark::State& state, DwarfLocations& loc_regs) { in RunBenchmark() argument
71 for (auto _ : state) { in RunBenchmark()
75 state.SkipWithError(err_stream.str().c_str()); in RunBenchmark()
84 state.SkipWithError(err_stream.str().c_str()); in RunBenchmark()
98 BENCHMARK_TEMPLATE_F(EvalBenchmark, BM_eval_register_few_regs, uint64_t)(benchmark::State& state) { in BENCHMARK_TEMPLATE_F()
102 RunBenchmark(state, loc_regs); in BENCHMARK_TEMPLATE_F()
105 BENCHMARK_TEMPLATE_F(EvalBenchmark, BM_eval_register_many_regs, uint64_t)(benchmark::State& state) { in BENCHMARK_TEMPLATE_F()
111 RunBenchmark(state, loc_regs); in BENCHMARK_TEMPLATE_F()
116 (benchmark::State& state) { in BENCHMARK_TEMPLATE_F()
[all …]
Dremote_unwind_benchmarks.cpp96 static void RemoteUnwind(benchmark::State& state, bool cached) { in RemoteUnwind() argument
99 state.SkipWithError("Failed to start remote process."); in RemoteUnwind()
111 state.SkipWithError("Failed to parse maps."); in RemoteUnwind()
114 for (auto _ : state) { in RemoteUnwind()
119 state.SkipWithError("Failed to unwind properly."); in RemoteUnwind()
126 static void BM_remote_unwind_uncached(benchmark::State& state) { in BM_remote_unwind_uncached() argument
127 RemoteUnwind(state, false); in BM_remote_unwind_uncached()
131 static void BM_remote_unwind_cached(benchmark::State& state) { in BM_remote_unwind_cached() argument
132 RemoteUnwind(state, true); in BM_remote_unwind_cached()
136 static void RemoteAndroidUnwind(benchmark::State& state, bool cached) { in RemoteAndroidUnwind() argument
[all …]
DMapsBenchmark.cpp56 static void ReparseBenchmark(benchmark::State& state, const char* maps1, size_t maps1_total, in ReparseBenchmark() argument
58 for (auto _ : state) { in ReparseBenchmark()
79 void BM_local_updatable_maps_reparse_double_initial_small(benchmark::State& state) { in BM_local_updatable_maps_reparse_double_initial_small() argument
86 ReparseBenchmark(state, initial_maps.path, kNumSmallMaps / 2, reparse_maps.path, kNumSmallMaps); in BM_local_updatable_maps_reparse_double_initial_small()
90 void BM_local_updatable_maps_reparse_double_initial_large(benchmark::State& state) { in BM_local_updatable_maps_reparse_double_initial_large() argument
97 ReparseBenchmark(state, initial_maps.path, kNumLargeMaps / 2, reparse_maps.path, kNumLargeMaps); in BM_local_updatable_maps_reparse_double_initial_large()
101 void BM_local_updatable_maps_reparse_same_maps_small(benchmark::State& state) { in BM_local_updatable_maps_reparse_same_maps_small() argument
106 ReparseBenchmark(state, maps.path, kNumSmallMaps, maps.path, kNumSmallMaps); in BM_local_updatable_maps_reparse_same_maps_small()
110 void BM_local_updatable_maps_reparse_same_maps_large(benchmark::State& state) { in BM_local_updatable_maps_reparse_same_maps_large() argument
114 ReparseBenchmark(state, maps.path, kNumLargeMaps, maps.path, kNumLargeMaps); in BM_local_updatable_maps_reparse_same_maps_large()
[all …]
/system/tools/xsdc/src/main/java/com/android/xsdc/
DXsdHandler.java136 State state = stateStack.pop(); in endElement() local
137 switch (state.name) { in endElement()
139 schema = makeSchema(state); in endElement()
142 stateStack.peek().tags.add(makeElement(state)); in endElement()
145 stateStack.peek().tags.add(makeAttribute(state)); in endElement()
148 stateStack.peek().tags.add(makeAttributeGroup(state)); in endElement()
151 stateStack.peek().tags.add(makeComplexType(state)); in endElement()
154 stateStack.peek().tags.add(makeComplexContent(state)); in endElement()
157 stateStack.peek().tags.add(makeSimpleContent(state)); in endElement()
161 stateStack.peek().tags.add(makeEnumRestriction(state)); in endElement()
[all …]
/system/logging/liblog/tests/
Dliblog_benchmark.cpp58 static void BM_log_maximum_retry(benchmark::State& state) { in BM_log_maximum_retry() argument
59 while (state.KeepRunning()) { in BM_log_maximum_retry()
61 state.iterations())); in BM_log_maximum_retry()
71 static void BM_log_maximum(benchmark::State& state) { in BM_log_maximum() argument
72 while (state.KeepRunning()) { in BM_log_maximum()
73 __android_log_print(ANDROID_LOG_INFO, "BM_log_maximum", "%" PRIu64, state.iterations()); in BM_log_maximum()
89 static void BM_clock_overhead(benchmark::State& state) { in BM_clock_overhead() argument
90 while (state.KeepRunning()) { in BM_clock_overhead()
91 state.PauseTiming(); in BM_clock_overhead()
92 state.ResumeTiming(); in BM_clock_overhead()
[all …]
/system/libbase/
Dfunction_ref_benchmark.cpp39 static void BenchmarkFuncRaw(benchmark::State& state) { in BenchmarkFuncRaw() argument
40 for (auto _ : state) { in BenchmarkFuncRaw()
46 static void BenchmarkFuncPtr(benchmark::State& state) { in BenchmarkFuncPtr() argument
48 for (auto _ : state) { in BenchmarkFuncPtr()
54 static void BenchmarkStdFunction(benchmark::State& state) { in BenchmarkStdFunction() argument
56 for (auto _ : state) { in BenchmarkStdFunction()
62 static void BenchmarkFunctionRef(benchmark::State& state) { in BenchmarkFunctionRef() argument
64 for (auto _ : state) { in BenchmarkFunctionRef()
79 static void BenchmarkBigRaw(benchmark::State& state) { in BenchmarkBigRaw() argument
80 for (auto _ : state) { in BenchmarkBigRaw()
[all …]
Dformat_benchmark.cpp27 static void BenchmarkFormatInt(benchmark::State& state) { in BenchmarkFormatInt() argument
28 for (auto _ : state) { in BenchmarkFormatInt()
36 static void BenchmarkStringPrintfInt(benchmark::State& state) { in BenchmarkStringPrintfInt() argument
37 for (auto _ : state) { in BenchmarkStringPrintfInt()
45 static void BenchmarkFormatFloat(benchmark::State& state) { in BenchmarkFormatFloat() argument
46 for (auto _ : state) { in BenchmarkFormatFloat()
54 static void BenchmarkStringPrintfFloat(benchmark::State& state) { in BenchmarkStringPrintfFloat() argument
55 for (auto _ : state) { in BenchmarkStringPrintfFloat()
63 static void BenchmarkFormatStrings(benchmark::State& state) { in BenchmarkFormatStrings() argument
64 for (auto _ : state) { in BenchmarkFormatStrings()
[all …]
/system/netd/tests/benchmarks/
Dconnect_benchmark.cpp99 static void ipv4_loopback(benchmark::State& state, const bool waitBetweenRuns) { in ipv4_loopback() argument
103 state.SkipWithError("Unable to bind server socket"); in ipv4_loopback()
108 std::vector<uint64_t> latencies(state.max_iterations); in ipv4_loopback()
111 while (state.KeepRunning()) { in ipv4_loopback()
114 state.SkipWithError(StringPrintf("socket() failed with errno=%d", errno).c_str()); in ipv4_loopback()
122 state.SkipWithError(StringPrintf("connect() failed with errno=%d", errno).c_str()); in ipv4_loopback()
129 state.SetIterationTime(static_cast<double>(latencies[iterations]) / 1.0e6L); in ipv4_loopback()
138 state.SkipWithError(StringPrintf("accept() failed with errno=%d", errno).c_str()); in ipv4_loopback()
152 state.SetLabel(StringPrintf("%lld", (long long) latencies[iterations * 9 / 10])); in ipv4_loopback()
156 static void ipv6_loopback(benchmark::State& state, const bool waitBetweenRuns) { in ipv6_loopback() argument
[all …]
Dbpf_benchmark.cpp36 BENCHMARK_DEFINE_F(BpfBenchMark, MapWriteNewEntry)(benchmark::State& state) { in BENCHMARK_DEFINE_F()
37 for (auto _ : state) { // NOLINT(clang-analyzer-deadcode.DeadStores) in BENCHMARK_DEFINE_F()
39 mBpfTestMap.writeValue(state.range(0), state.range(0), BPF_NOEXIST); in BENCHMARK_DEFINE_F()
43 BENCHMARK_DEFINE_F(BpfBenchMark, MapUpdateEntry)(benchmark::State& state) { in BENCHMARK_DEFINE_F()
48 for (auto _ : state) { // NOLINT(clang-analyzer-deadcode.DeadStores) in BENCHMARK_DEFINE_F()
50 mBpfTestMap.writeValue(state.range(0), state.range(0) + 1, BPF_EXIST); in BENCHMARK_DEFINE_F()
54 BENCHMARK_DEFINE_F(BpfBenchMark, MapDeleteAddEntry)(benchmark::State& state) { in BENCHMARK_DEFINE_F()
59 for (auto _ : state) { // NOLINT(clang-analyzer-deadcode.DeadStores) in BENCHMARK_DEFINE_F()
61 mBpfTestMap.deleteValue(state.range(0)); in BENCHMARK_DEFINE_F()
63 mBpfTestMap.writeValue(state.range(0), state.range(0) + 1, BPF_NOEXIST); in BENCHMARK_DEFINE_F()
[all …]
/system/core/init/
Dtokenizer.cpp8 int next_token(struct parse_state *state) in next_token() argument
10 char *x = state->ptr; in next_token()
13 if (state->nexttoken) { in next_token()
14 int t = state->nexttoken; in next_token()
15 state->nexttoken = 0; in next_token()
22 state->ptr = x; in next_token()
26 state->ptr = x; in next_token()
36 state->ptr = x+1; in next_token()
39 state->ptr = x; in next_token()
48 state->ptr = x; in next_token()
[all …]
/system/extras/memory_replay/
DTraceBenchmark.cpp152 static void RunTrace(benchmark::State& state, TraceDataType* trace_data) { in RunTrace() argument
244 state.SetIterationTime(total_ns / double(1000000000.0)); in RunTrace()
252 static void BenchmarkTrace(benchmark::State& state, const char* filename, bool enable_decay_time) { in BenchmarkTrace() argument
265 for (auto _ : state) { in BenchmarkTrace()
266 RunTrace(state, &trace_data); in BenchmarkTrace()
280 static void BM_angry_birds2(benchmark::State& state) { in BM_angry_birds2() argument
281 BenchmarkTrace(state, "angry_birds2.zip", true); in BM_angry_birds2()
286 static void BM_angry_birds2_no_decay(benchmark::State& state) { in BM_angry_birds2_no_decay() argument
287 BenchmarkTrace(state, "angry_birds2.zip", false); in BM_angry_birds2_no_decay()
292 static void BM_camera(benchmark::State& state) { in BM_camera() argument
[all …]
/system/media/audio_utils/benchmarks/
Dprimitives_benchmark.cpp25 static void BM_MemcpyToFloatFromFloatWithClamping(benchmark::State& state) { in BM_MemcpyToFloatFromFloatWithClamping() argument
26 const size_t count = state.range(0); in BM_MemcpyToFloatFromFloatWithClamping()
27 const float srcMax = state.range(1); in BM_MemcpyToFloatFromFloatWithClamping()
43 while (state.KeepRunning()) { in BM_MemcpyToFloatFromFloatWithClamping()
51 state.SkipWithError("Incorrect clamping!"); in BM_MemcpyToFloatFromFloatWithClamping()
53 state.SetComplexityN(state.range(0)); in BM_MemcpyToFloatFromFloatWithClamping()
58 static void BM_MemcpyFloat(benchmark::State& state) { in BM_MemcpyFloat() argument
59 const size_t count = state.range(0); in BM_MemcpyFloat()
72 while (state.KeepRunning()) { in BM_MemcpyFloat()
80 state.SkipWithError("Incorrect memcpy!"); in BM_MemcpyFloat()
[all …]
Dstatistics_benchmark.cpp36 static void BM_MeanVariance(benchmark::State& state, int iterlimit, int alphalimit) { in BM_MeanVariance() argument
47 while (state.KeepRunning()) { in BM_MeanVariance()
59 state.SetComplexityN(count); in BM_MeanVariance()
72 static void BM_MeanVariance_float_float_float(benchmark::State &state) { in BM_MeanVariance_float_float_float() argument
73 BM_MeanVariance<android::audio_utils::Statistics<float, float, float>>(state, in BM_MeanVariance_float_float_float()
80 static void BM_RefMeanVariance_float_float(benchmark::State &state) { in BM_RefMeanVariance_float_float() argument
81 BM_MeanVariance<android::audio_utils::ReferenceStatistics<float, float>>(state, in BM_RefMeanVariance_float_float()
88 static auto BM_MeanVariance_float_double_double(benchmark::State &state) { in BM_MeanVariance_float_double_double() argument
89 BM_MeanVariance<android::audio_utils::Statistics<float, double, double>>(state, in BM_MeanVariance_float_double_double()
96 static auto BM_RefMeanVariance_float_double(benchmark::State &state) { in BM_RefMeanVariance_float_double() argument
[all …]
Dchannelmix_benchmark.cpp149 static void BenchmarkChannelMix(benchmark::State& state) { in BenchmarkChannelMix() argument
150 const audio_channel_mask_t channelMask = kChannelPositionMasks[state.range(0)]; in BenchmarkChannelMix()
168 for (auto _ : state) { in BenchmarkChannelMix()
175 state.SetComplexityN(inChannels); in BenchmarkChannelMix()
176 state.SetLabel(audio_channel_out_mask_to_string(channelMask)); in BenchmarkChannelMix()
179 static void BM_ChannelMix_Stereo(benchmark::State& state) { in BM_ChannelMix_Stereo() argument
180 BenchmarkChannelMix<AUDIO_CHANNEL_OUT_STEREO>(state); in BM_ChannelMix_Stereo()
183 static void BM_ChannelMix_5Point1(benchmark::State& state) { in BM_ChannelMix_5Point1() argument
184 BenchmarkChannelMix<AUDIO_CHANNEL_OUT_5POINT1>(state); in BM_ChannelMix_5Point1()
187 static void BM_ChannelMix_7Point1(benchmark::State& state) { in BM_ChannelMix_7Point1() argument
[all …]
/system/libziparchive/
Dzip_archive_benchmark.cpp57 static void OpenClose(benchmark::State& state) { in OpenClose() argument
58 std::unique_ptr<TemporaryFile> temp_file(CreateZip(4, int(state.range(0)))); in OpenClose()
60 for (auto _ : state) { in OpenClose()
67 static void FindEntry_no_match(benchmark::State& state) { in FindEntry_no_match() argument
69 std::unique_ptr<TemporaryFile> temp_file(CreateZip(4, int(state.range(0)))); in FindEntry_no_match()
79 for (auto _ : state) { in FindEntry_no_match()
86 static void Iterate_all_files(benchmark::State& state) { in Iterate_all_files() argument
87 std::unique_ptr<TemporaryFile> temp_file(CreateZip(4, int(state.range(0)))); in Iterate_all_files()
94 for (auto _ : state) { in Iterate_all_files()
104 static void StartAlignedEntry(benchmark::State& state) { in StartAlignedEntry() argument
[all …]
/system/security/keystore2/src/
Dwatchdog.rs65 state: State, field
194 state: Arc<(Condvar, Mutex<WatchdogState>)>, field
207 state: Arc::new(( in new()
210 state: State::NotRunning, in new()
264 let (ref condvar, ref state) = *self.state; in arm()
266 let mut state = state.lock().unwrap(); in arm() localVariable
267 state.arm(index, record); in arm()
269 if state.state != State::Running { in arm()
270 self.spawn_thread(&mut state); in arm()
272 drop(state); in arm()
[all …]
/system/update_engine/payload_consumer/
Ddelta_performer_integration_test.cc391 DeltaState* state, in GenerateDeltaFile() argument
393 state->a_img.reset(new ScopedTempFile("a_img.XXXXXX")); in GenerateDeltaFile()
394 state->b_img.reset(new ScopedTempFile("b_img.XXXXXX")); in GenerateDeltaFile()
398 state->result_img.reset(new ScopedTempFile("result_img.XXXXXX")); in GenerateDeltaFile()
402 base::FilePath(state->a_img->path()))); in GenerateDeltaFile()
404 state->image_size = utils::FileSize(state->a_img->path()); in GenerateDeltaFile()
409 ScopedLoopMounter b_mounter(state->a_img->path(), &a_mnt, 0); in GenerateDeltaFile()
445 brillo::Blob ones(state->image_size, 0xff); in GenerateDeltaFile()
447 state->result_img->path().c_str(), ones.data(), ones.size())); in GenerateDeltaFile()
448 ASSERT_EQ(utils::FileSize(state->a_img->path()), in GenerateDeltaFile()
[all …]
/system/incremental_delivery/incfs/tests/
Dhardening_benchmark.cpp42 static void TestEmpty(benchmark::State& state) { in TestEmpty() argument
44 for (auto _ : state) { in TestEmpty()
50 static void TestSignal(benchmark::State& state) { in TestSignal() argument
55 for (auto _ : state) { in TestSignal()
62 static void TestRead(benchmark::State& state) { in TestRead() argument
65 for (auto _ : state) { in TestRead()
73 static void TestMapPtrRaw(benchmark::State& state) { in TestMapPtrRaw() argument
79 for (auto _ : state) { in TestMapPtrRaw()
87 static void TestMapPtr(benchmark::State& state) { in TestMapPtr() argument
92 for (auto _ : state) { in TestMapPtr()
[all …]
/system/extras/perf2cfg/perf2cfg/
Dedit.py128 self.state = State.START
150 if self.state != State.END:
172 if self.state == State.START:
174 self.state = State.END
176 self.state = State.PARSE_METHOD_NAME
181 elif self.state == State.PARSE_METHOD_NAME:
188 self.state = State.SKIP_TO_CFG
192 self.state = State.SKIP_METHOD
194 elif self.state == State.SKIP_METHOD:
196 self.state = State.END
[all …]

12345678910>>...17