<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Sync.Cond on Nalar</title>
    <link>https://nalar.dev/id/tags/sync.cond/</link>
    <description>Recent content in Sync.Cond on Nalar</description>
    <generator>Hugo</generator>
    <language>id-id</language>
    <lastBuildDate>Wed, 16 Sep 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://nalar.dev/id/tags/sync.cond/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Go sync.Cond Wait Memeriksa Ulang Shared State</title>
      <link>https://nalar.dev/id/go-sync-cond-wait-memeriksa-ulang-shared-state/</link>
      <pubDate>Wed, 16 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://nalar.dev/id/go-sync-cond-wait-memeriksa-ulang-shared-state/</guid>
      <description>&lt;p&gt;&lt;code&gt;sync.Cond.Wait&lt;/code&gt; melanjutkan eksekusi setelah notification, tetapi notification tidak menyatakan bahwa kondisi khusus milik caller masih true ketika goroutine memperoleh lock kembali. Shared predicate tetap menjadi source of truth, sehingga waiter memeriksanya lagi setiap kali &lt;code&gt;Wait&lt;/code&gt; kembali.&lt;/p&gt;&#xA;&lt;p&gt;Boundary ini memisahkan notification dari state. &lt;code&gt;Signal&lt;/code&gt; dan &lt;code&gt;Broadcast&lt;/code&gt; mengumumkan bahwa state yang relevan mungkin telah berubah; keduanya tidak memindahkan ownership state tersebut atau memesannya untuk waiter tertentu.&lt;/p&gt;&#xA;&lt;h2 id=&#34;wait-membuka-lock-lalu-memperolehnya-kembali&#34;&gt;Wait membuka lock lalu memperolehnya kembali&lt;/h2&gt;&#xA;&lt;p&gt;Sebuah &lt;code&gt;Cond&lt;/code&gt; terkait dengan &lt;code&gt;Locker&lt;/code&gt;, umumnya &lt;code&gt;*sync.Mutex&lt;/code&gt;. Caller memegang lock tersebut saat memeriksa shared state. Jika predicate false, &lt;code&gt;Wait&lt;/code&gt; secara atomik membuka locker dan menangguhkan caller. Sebelum &lt;code&gt;Wait&lt;/code&gt; kembali, ia mengunci locker lagi.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
