<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Concurrency on Igor Kulman</title>
    <link>https://blog.kulman.sk/tags/concurrency/</link>
    <description>Recent content in Concurrency on Igor Kulman</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 20 May 2026 07:00:00 +0100</lastBuildDate><atom:link href="https://blog.kulman.sk/tags/concurrency/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>I wanted async/await but I got a concurrency model</title>
      <link>https://blog.kulman.sk/i-wanted-async-await/</link>
      <pubDate>Wed, 20 May 2026 07:00:00 +0100</pubDate>
      
      <guid>https://blog.kulman.sk/i-wanted-async-await/</guid>
      <description>I remember the moment Swift announced async/await. I was genuinely relieved.
Finally, there was going to be a way out of completion handler pyramids, delegate chains, and the special kind of cognitive overhead that comes from reading code that executes in a completely different order than it is written.
I had worked with C# async/await years earlier, and my mental model came from there. In a UI app, if a SynchronizationContext is present, awaiting a Task captures it and posts the continuation back to it.</description>
    </item>
    
  </channel>
</rss>
