Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit ee71df7

Browse files
authored
Revert "Make drain() consistently asynchronous. (#21062)" (#21391)
This reverts commit cdc631c.
1 parent d9e7d65 commit ee71df7

File tree

3 files changed

+0
-33
lines changed

3 files changed

+0
-33
lines changed

lib/ui/channel_buffers.dart

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -181,11 +181,7 @@ class ChannelBuffers {
181181
///
182182
/// This should be called once a channel is prepared to handle messages
183183
/// (i.e. when a message handler is setup in the framework).
184-
///
185-
/// The messages are processed by calling the given `callback`. Each message
186-
/// is processed in its own microtask.
187184
Future<void> drain(String channel, DrainChannelCallback callback) async {
188-
await null; // Ensures that the rest of this method is scheduled in a microtask.
189185
while (!_isEmpty(channel)) {
190186
final _StoredMessage message = _pop(channel)!;
191187
await callback(message.data, message.callback);

lib/web_ui/lib/src/ui/channel_buffers.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,6 @@ class ChannelBuffers {
119119
}
120120

121121
Future<void> drain(String channel, DrainChannelCallback callback) async {
122-
await null; // Ensures that the rest of this method is scheduled in a microtask.
123122
while (!_isEmpty(channel)) {
124123
final _StoredMessage message = _pop(channel)!;
125124
await callback(message.data, message.callback);

testing/dart/channel_buffers_test.dart

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
// found in the LICENSE file.
44

55
// @dart = 2.6
6-
7-
import 'dart:async';
86
import 'dart:convert';
97
import 'dart:typed_data';
108
import 'dart:ui' as ui;
@@ -36,32 +34,6 @@ void main() {
3634
});
3735
});
3836

39-
test('drain is async', () async {
40-
const String channel = 'foo';
41-
final ByteData data = _makeByteData('message');
42-
final ui.ChannelBuffers buffers = ui.ChannelBuffers();
43-
final ui.PlatformMessageResponseCallback callback = (ByteData responseData) {};
44-
buffers.push(channel, data, callback);
45-
final List<String> log = <String>[];
46-
final Completer<void> completer = Completer<void>();
47-
scheduleMicrotask(() { log.add('before drain, microtask'); });
48-
log.add('before drain');
49-
buffers.drain(channel, (ByteData drainedData, ui.PlatformMessageResponseCallback drainedCallback) async {
50-
log.add('callback');
51-
completer.complete();
52-
});
53-
log.add('after drain, before await');
54-
await completer.future;
55-
log.add('after await');
56-
expect(log, <String>[
57-
'before drain',
58-
'after drain, before await',
59-
'before drain, microtask',
60-
'callback',
61-
'after await'
62-
]);
63-
});
64-
6537
test('push drain zero', () async {
6638
const String channel = 'foo';
6739
final ByteData data = _makeByteData('bar');

0 commit comments

Comments
 (0)