TGViewer
Chernov ne sharit 2.0 Chernov ne sharit 2.0 @chernov_sharit · 692 subscribers
Post #752 694
29 октября std.Io залили в master (да, да, тот самый православный). О том, что это плохо писал полтора месяца назад: https://t.me/chernov_sharit/739

Теперь вот принесли статью с примерами по случаю этого события:
https://andrewkelley.me/post/zig-new-async-io-text-version.html

Скопирую оттуда седьмой пример:
fn juicyMain(gpa: Allocator, io: Io) !void {
var a = io.async(doWork, .{ gpa, io, "hard" });
defer if (a.cancel(io)) |s| gpa.free(s) else |_| {};

var b = io.async(doWork, .{ gpa, io, "on an excuse not to drink Spezi" });
defer if (b.cancel(io)) |s| gpa.free(s) else |_| {};

const a_string = try a.await(io);
const b_string = try b.await(io);
std.debug.print("finished {s}\n", .{a_string});
std.debug.print("finished {s}\n", .{b_string});
}

fn doWork(gpa: Allocator, io: Io, flavor_text: []const u8) ![]u8 {
const copied_string = try gpa.dupe(u8, flavor_text);
std.debug.print("working {s}\n", .{copied_string});
io.sleep(.fromSeconds(1), .awake) catch {};
return copied_string;
}


Как вы думаете в какой последовательности что будет выведено не подглядывая? Копировать ответ не собираюсь.

С чем я согласен: с тем, что надо понимать зависимости между продьюсером данных и тем, кто их вычитывает. Так же как и то, что IO должно быть передано как параметр, но вот выносить реализацию за пределы stdlib и не иметь реализацию в ней - это перебор.

Заглядывая в будущее: Zig - следующий шаг сделать монаду Reader.
  • 💩 2
  • ❤ 1
  • 🤣 1
  • 💊 1
More from @chernov_sharit
  1. Sep 10, 2026### З(н)а(к) качества Вчера мне высказали за слово эффективность тут, а я опять поймал себ…
  2. Sep 10, 2026Channel name was changed to «Chernov ne sharit 2.0»
  3. Jun 24, 2026Мне тут друг подсказали, что можно попросить придумать название для канала. Напиши ваши ва…
  4. Jun 2, 2026Ладно, пока суть до дело про больше писать. С друзьями где можно уже поделился, но лучший…
  5. May 30, 2026Впервые за долгое время у меня случилось продолжительное обучение. Не вот эти вот курсы на…
  6. Mar 26, 2026Исследования баз данных У меня есть безумное желание знать всё. Не уметь, не делать, но зн…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →