<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Cancellation on Nalar</title>
    <link>https://nalar.dev/tags/cancellation/</link>
    <description>Recent content in Cancellation on Nalar</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 15 Sep 2026 00:00:00 +0700</lastBuildDate>
    <atom:link href="https://nalar.dev/tags/cancellation/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Task Scopes Bind Child Lifetimes to Parent Operations</title>
      <link>https://nalar.dev/task-scopes-bind-child-lifetimes-to-parent-operations/</link>
      <pubDate>Tue, 15 Sep 2026 00:00:00 +0700</pubDate>
      <guid>https://nalar.dev/task-scopes-bind-child-lifetimes-to-parent-operations/</guid>
      <description>&lt;p&gt;An asynchronous function can return while work it started is still running. Once that happens, the caller no longer has a lexical boundary that states when the spawned work finishes, where its failure is observed, or which operation owns its cancellation.&lt;/p&gt;&#xA;&lt;p&gt;Structured concurrency changes that lifetime relation. Child tasks belong to an enclosing scope, and the scope does not complete until its children reach a terminal state according to the runtime&amp;rsquo;s task-group semantics. The central property is not parallel execution. It is that task lifetime follows program structure.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cancellation Is a Protocol, Not a Thread Kill</title>
      <link>https://nalar.dev/cancellation-is-a-protocol-not-a-thread-kill/</link>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0700</pubDate>
      <guid>https://nalar.dev/cancellation-is-a-protocol-not-a-thread-kill/</guid>
      <description>&lt;p&gt;A caller can stop waiting for a result while the operation producing that result continues to run. The distinction is easy to miss because many APIs expose cancellation through a single method, token, context, or signal. That surface can look like a command to terminate work. In most cooperative designs, it is closer to a state transition: further work is no longer wanted.&lt;/p&gt;&#xA;&lt;p&gt;The gap matters once an operation owns resources, crosses process boundaries, or has already produced side effects. A cancelled HTTP request does not retroactively erase a committed database transaction. A task that notices a cancellation token between two writes cannot make the first write disappear. A parent that abandons a child computation also needs a rule for who observes the child&amp;rsquo;s eventual completion and who releases anything the child owns.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
